Entonces escribí mi primer script de bash:
#!/bin/bash
echo 'hello world!'
exit
Sé que tiene la ubicación correcta para golpear y es ejecutable:
$ which bash
/bin/bash
$ chmod +x myscript.sh
Ahora quiero ejecutarlo desde la línea de comando, pero aparece un error:
$ myscript.sh
myscript.sh: command not found
Entonces, en cambio, intento esto y funciona:
$ bash myscript.sh
hello world!
¿Es así como siempre tendré que ejecutarlo? Siento que he ejecutado otros scripts sin tener que precederlo bash
. ¿Cómo puedo ejecutar myscript.sh sin tener que precederlo bash
?
Actualización: Aquí hay una buena explicación de por qué y cómo ejecutar un script bash .
fuente
Además del consejo de Fernández, preceda con un punto como este:
Por razones de seguridad, el directorio actual nunca se incluye en la ruta de ejecución.
fuente
Hay 3 formas de ejecutar el script bash. Con el ejemplo myscript.sh como el script que desea ejecutar.
Método 1
ejecutar el script como un subproceso, lo que provocará problemas de permisos si no es el propietario de la escritura Puede cambiar los permisos por chmod.
Método 2
ejecuta el script como usuario actual. Si el script bash está bien escrito, no debería tener errores.
Método 3
similar al método 2 pero un atajo. tenga en cuenta que esto se basa en la suposición de que está utilizando bash shell en la sesión actual.
¡espero que esto ayude!:)
fuente