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