$RANDOM en un script no imprime (solucionado)

Imagen de Paulo_Jorge
0 puntos

Saludos,
Estoy aprendiendo bash y, a modo de ejercicio, he creado un script muy simple que debería imprimir un número aleatorio:

#!bin/bash
printf "Aquí va un número aleatorio: %d\n" "$RANDOM"

Cuando ejecuto el comando directamente desde la terminal, la variable $RANDOM imprime un número aleatorio. Todo bien.

Aquí va un número aleatorio: 1438

Sin embargo, cuando lo guardo en un script y ejecuto este mismo script desde la terminal, $RANDOM no imprime nada, tan solo aparece:

Aquí va un número aleatorio:

¿Algún consejo?

¡Gracias!

Imagen de Adeptus24
+1
0
-1

Buenas,

Me parece raro eso que comentas, ya que a mi si que me funciona:

bash prueba0001.sh
Aquí va un número aleatorio: 8609

Prueba a ver si es por esto:

#!/bin/bash

Puede que sea porque te falta la / entre la ! y el bin/bash

Un saludo!

+1
0
-1
Imagen de Paulo_Jorge
+1
0
-1

He descubierto el fallo. Cuando ejecuto

sh script.sh

no me sale el número aleatorio, sin embargo cuando reemplazo "sh" por "bash":

bash script.sh

como hiciste, entonces ya me sale el número aleatorio.
¿Pero... por qué no funciona con "sh"?
En fin, ya he aprendido la lección jeje
Muchas gracias :)
un saludo

+1
0
-1

Chuck Norris sí sabe programar...

Imagen de joseluis
+1
0
-1

sh no es más que un link a la shell que tengas por defecto, que si no la has cambiado imagino será dash; en dashe no parece funcionar muy bien $RANDOM, mientras que cuando lo ejecutas con bash ya estás forzando a utilizar la shell bash.


Fdo. Forense asesino, Censor fundamentalista, Fustigador de novatos y Patético maleducado

+1
0
-1

Fdo. Forense asesino, Censor fundamentalista, Fustigador de novatos y Patético maleducado

Imagen de Adeptus24
+1
0
-1

Si quieres ejecutar el script tal cual, sin necesidad de tener que poner bash, sh, ksh, o como lo programes delante cada vez que lo quieras ejecutar, y no tener que ir al directorio donde esta el script, copialo al directorio /usr/bin y ponle en la primera linea #!/bin/bash , asi con ejecutar solo el nombre del script esta solucionado, dale permisos 555.

Un saludo!

+1
0
-1
Imagen de Paulo_Jorge
+1
0
-1

Ok, ya lo entiendo. Por cierto, he creado un directorio en mi carpeta personal y lo he agregado a la variable $PATH como me recomiendan en un libro del que estoy aprendiendo bash (es que si no, en /usr/bin ya hay demasiadas cosas y me pierdo jeje)
En fin, muchas gracias por resolverme esta dudilla :)
Un saludo!

+1
0
-1

Chuck Norris sí sabe programar...