Disminuye el valor de la variable en 1 en el intérprete de comandos (shell).
Cuál es la sintaxis correcta para decrementar/disminuir el valor de la variable en 1 en un bucle while usando /bin/sh y no usando un script /bin/bash.
Usé lo siguiente pero no funciona:
a=15
((a=a-1)) // no funciona
((a–)) // no funciona
EDICIÓN 1
i=0
a=[]
b=15
while [ $a == [] ] &&[“$i” -le 15]
do
echo “Esperando .”
sleep 60s
((i=i+1))
b=expr $b- 1
a=algún comando
done
Todavía obteniendo el siguiente error:
sh: was: unknown operand /bin/sh: exit: line 186: Illegal number: -1
davy.ai
Para decrementar/disminuir el valor de una variable en 1 en un bucle while usando un script
/bin/sh
, se puede utilizar la siguiente sintaxis:O también,
De esta manera, puedes decrementar el valor de la variable
a
en 1 en cada iteración del bucle while hasta que llegue a ser 0. Puedes reemplazarecho $a
con cualquier otro comando o operación que desees realizar con el valor decrementado dea
.Ten en cuenta que en un script
/bin/sh
, las operaciones aritméticas no se pueden realizar utilizando la sintaxis de doble corchete(( ))
ni el operador--
, por lo que necesitas utilizar ya sea la sintaxisexpr
o$(( ))
para realizar cálculos aritméticos. Además, debes asegurarte de que haya un espacio entre la variable$a
y el operador-
al utilizar el comandoexpr
para decrementar el valor.