04/02/2014, 19:51
|
|
Respuesta: error sintáctico: operador aritmético inválido en Bash ARICARRARO,
Tu código original es perfectamente correcto, si acaso vale la nota extra de que en contexto de (( )) o $(( )), las variables no necesitan el $ al principio. Para ver si tu script es correcto, basta cn ejecutarlo con "bash -n miscript.sh".
El problema por el que no te funciona el script original es que lo estás llamando vía "sh", lo cual NO es lo mismo que bash. SH es la "Bourne Shell", mientras que BASH es "Bourne Again Shell". SH es una shell antigua que no entiende la construcción $(( )), pero se mantiene porque si un script corre correctamente en SH, se puede garantizar con un alto nivel de confianza que correrá en cualquier sistema tipo UNIX.
Cuando llamas directamente a SH en un sistema Linux moderno, estás ejecutando BASH, pero BASH entra en modo compatibilidad con POSIX, lo cual basicamente quiere decir que se transforma en la SH básica. |