LINUX.ORG.RU

Подскажите по случайным числам и регулярным выражениям...


0

0

rnd_ip ()
{
echo $[RANDOM%255].$[RANDOM%255].$[RANDOM%255].$[RANDOM%255]
}
rnd_ips ()
{
i=0;
while [ $i -lt $[$1-1] ]; do
echo -n `rnd_ip`,;
i=$[i+1];
done;
rnd_ip
}
При выполнении такого скрипта ничего не проиходит. По идее должно быть что-то вроде фейкового ипа.

и ещё...
Как в шеле построчно прочитать файл?
Или как сделать что-бы конструкфия полученная в последсивии грепа
xxx.xxx.xxx
yyy.yyy.yyy
была такой...
xxx.xxx.xxx, yyy.yyy.yyy
___
заранее благодарен за ответ.


> echo $[RANDOM%255].$[RANDOM%255].$[RANDOM%255].$[RANDOM%255]

а где ты придумал такие скобки $[..] ?  Замени на $((RANDOM%255))

> Как в шеле построчно прочитать файл? 
> Или как сделать что-бы конструкфия полученная в последсивии грепа 
> xxx.xxx.xxx 
> yyy.yyy.yyy 
> была такой... 
> xxx.xxx.xxx, yyy.yyy.yyy

можно так:
while read LINE; do
  ........
done

но лучше awk

dilmah ★★★★★
()
Ответ на: комментарий от sdio

man bash 

       Arithmetic expansion allows the evaluation of an arithmetic  expression
       and  the  substitution of the result.  The format for arithmetic expann‐
       sion is:

              $((expression))

       The old format $[expression] is  deprecated  and  will  be  removed  in
       upcoming versions of bash.

sdio ★★★★★
()

Что не работает в скрипте? Я вижу что работает

$ rnd_ips 5
140.88.207.91,149.188.77.80,29.162.203.196,37.7.74.185,122.230.220.223

sdio ★★★★★
()
Ответ на: комментарий от dilmah

В данном то случае это не проблема. Если у него шел не понимающий $[], валились бы ошибки и вопрос был бы иной. А ты сразу: "скобки поменяй"

sdio ★★★★★
()
Ответ на: комментарий от quasi

> шел csh.
Н-да, больной, как у вас все запущено. (с) др. Шац.

sdio ★★★★★
()
Ответ на: комментарий от quasi

>шел csh.

Ну дак читайте man csh, или впишите в начало скрипта строчку "#!/bin/bash" (если bash установлен в системе).

mky ★★★★★
()
Ответ на: комментарий от mky

В csh тоже круглые скобки, собтавил bash3, прописал шел в скрипте, результат тот же. Может нужно сеты какие-то поставить ещё? Или может в БСД это вовсе не работает(хотя в ряд ли)?!

quasi
() автор топика
Ответ на: комментарий от sdio

testbsd# cat rnd_ips
#!/usr/local/bin/bash
rnd_ip ()
{
echo $((RANDOM%255)).$((RANDOM%255)).$((RANDOM%255)).$((RANDOM%255))
}
rnd_ips ()
{
i=0;
while (( $i -lt $(($1-1)) )); do
echo -n `rnd_ip`,;
i=$((i+1));
done;
rnd_ip
}
testbsd# ./rnd_ips 5
testbsd# ls /usr/local/bin/bash
/usr/local/bin/bash
testbsd# /usr/local/bin/bash --version
GNU bash, version 3.2.17(2)-release (i386-portbld-freebsd6.2)
Copyright (C) 2005 Free Software Foundation, Inc.
testbsd#

anonymous
()
Ответ на: комментарий от anonymous

testbsd# cat rnd_ips
#!/usr/local/bin/bash
rnd_ip () {
  echo $((RANDOM%255)).$((RANDOM%255)).$((RANDOM%255)).$((RANDOM%255))
}
rnd_ips () {
  i=0;
  while (( $i -lt $(($1-1)) )); do
    echo -n `rnd_ip`,;
    i=$((i+1));
  done;
  rnd_ip
}

rnd_ips $1
#### end of rnd_ips script###

testbsd# ./rnd_ips 5

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.