es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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

Tags:  ,

Answer

  1. Avatar for 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:

    a=15
    while [ $a -gt 0 ]
    do
      a=$(expr $a - 1)
      echo $a
    done
    

    O también,

    a=15
    while [ $a -gt 0 ]
    do
      a=$((a - 1))
      echo $a
    done
    

    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 reemplazar echo $a con cualquier otro comando o operación que desees realizar con el valor decrementado de a.

    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 sintaxis expr 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 comando expr para decrementar el valor.

Comments are closed.