Dos problemas:
-
Necesita espacios en blanco entre "if
[" así como "[
evaluación numérica
]" para ejecutar correctamente.
-
La sintaxis lógica es incorrecta. if
x ; then
(y solo entonces) y ; else
z ; fi
; done
. Else
no es necesario, pero no puede declarar dos declaraciones if
idénticas de esta manera:
-
if
x , then
y .
-
if
x , then
z .
Eso no tiene sentido lógico.
Por otro lado:
Dicho esto, esto es lo que estás buscando:
#! /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
Que, cuando se guarda como un guión, test.sh
devuelve lo siguiente:
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]