switch sintaxis script not bash if-statement

sintaxis - Script Bash-if, elif, else sentencia problemas



shell script linux if condition (3)

Falta un espacio entre elif y [ :

elif[ "$seconds" -gt 0 ]

debiera ser

elif [ "$seconds" -gt 0 ]

Como veo que esta pregunta tiene muchas vistas, es importante indicar que la sintaxis a seguir es:

if [ conditions ] # ^ ^ ^

lo que significa que se necesitan espacios alrededor de los corchetes . De lo contrario, no funcionará. Esto es porque [ sí mismo es un comando.

Esta pregunta ya tiene una respuesta aquí:

Parece que no puedo resolver cuál es el problema con la siguiente declaración if en relación con el elif y then . Tenga en cuenta que printf aún está en desarrollo. Todavía no he podido probarlo en la declaración, por lo que es más que probable que esté equivocado.

El error que estoy obteniendo es:

./timezone_string.sh: line 14: syntax error near unexpected token `then'' ./timezone_string.sh: line 14: `then''

Y la declaración es así.

if [ "$seconds" -eq 0 ];then $timezone_string="Z" elif[ "$seconds" -gt 0 ] then $timezone_string=`printf "%02d:%02d" $seconds/3600 ($seconds/60)%60` else echo "Unknown parameter" fi


Usted tiene algunos problemas de sintaxis con su script. Aquí hay una versión fija:

#!/bin/bash if [ "$seconds" -eq 0 ]; then timezone_string="Z" elif [ "$seconds" -gt 0 ]; then timezone_string=$(printf "%02d:%02d" $((seconds/3600)) $(((seconds / 60) % 60))) else echo "Unkown parameter" fi


[ es un comando. Debe estar separado por espacios en blanco de la declaración anterior:

elif [