Два вопроса:
Вам нужно пробел между «if
[» и «[
числовая оценка
]» для правильного выполнения.
Логический синтаксис неверен. if
х ; then
(и только потом) у ; else
z ; fi
; done
, Else
не является обязательным, но вы не можете объявить два одинаковых if
утверждения следующим образом:
if
х , then
у .
if
х , then
з .
Это не имеет никакого логического смысла. С другой стороны:
if
х , then
у & г делает.
Тем не менее, вот что вы ищете:
#! /bin/bash
for((i=0;i<=100000000;i++));
do echo "Request #" $i " returned ip-adress “[ $((RANDOM%256)).$((RANDOM%256)).$((RANDOM%256)).$((RANDOM%256)) ];
if [ "$i" = "100000000" ];
then echo "All ip-adresses have been stored in local hard drive." -$((RANDOM%256)).$((RANDOM%256)).$((RANDOM%256)).$((RANDOM%256)) && echo [Process Completed];
fi
done
Который при сохранении в виде скрипта test.sh
возвращает следующее:
MacBook-Pro:~ njboot$ test.sh
Request # 0 returned ip-adress [ 0.84.37.68 ]
Request # 1 returned ip-adress [ 169.181.247.217 ]
Request # 2 returned ip-adress [ 164.183.119.15 ]
Request # 3 returned ip-adress [ 191.149.177.224 ]
Request # 4 returned ip-adress [ 84.28.26.92 ]
Request # 5 returned ip-adress [ 54.38.89.138 ]
Request # 6 returned ip-adress [ 86.222.217.2 ]
Request # 7 returned ip-adress [ 57.178.16.75 ]
Request # 8 returned ip-adress [ 26.22.140.245 ]
Request # 9 returned ip-adress [ 222.255.194.118 ]
Request # 10 returned ip-adress [ 188.26.150.197 ]
…
Request # 100000000 returned ip-adress [ 233.66.114.134 ]
All ip-adresses have been stored in local hard drive. -181.167.202.102
[Process Completed]