Tienes que hacer que el archivo sea ejecutable. Puedes hacerlo con
chmod +x <filename>
donde está el nombre de su secuencia de comandos y luego debe anteponerlo con ./
para indicarle al shell que ejecute un archivo en el directorio local, como:
./script.sh
Solo puede ejecutar archivos que están en su PATH
o que especifique una ruta a ellos. ./
, el directorio local, no está en el PATH
por defecto porque alguien puede usarlo para propósitos nefastos. Imagina un script llamado ls
soltado en un directorio, entras en ese directorio, ejecutas ls
y ese script hace algo malo.
Mientras lo hace, es posible que desee hacerlo más portátil ejecutando shell en lugar de bash usando:
#!/bin/sh
o ejecutando bash sin importar dónde esté instalado, siempre y cuando esté instalado:
#!/usr/bin/env bash