Devi rendere il file eseguibile. Puoi farlo con
chmod +x <filename>
dov'è il nome del tuo script e poi devi anteporlo con ./
per istruire la shell ad eseguire un file nella directory locale, come:
./script.sh
Puoi eseguire solo i file che si trovano nel tuo PATH
o che specifichi un percorso per loro. ./
, la directory locale, non è in PATH
per impostazione predefinita perché qualcuno potrebbe usarlo per scopi nefasti. Immagina uno script chiamato ls
rilasciato in una directory, vai all'interno di quella directory, esegui ls
e quello script fa qualcosa di brutto.
Già che ci sei potresti voler renderlo più portabile eseguendo shell invece di bash usando:
#!/bin/sh
oppure eseguendo bash, non importa dove sia installato, purché sia installato:
#!/usr/bin/env bash