Esegui
. example.txt
Questo fa esattamente quello che chiedi, senza impostare un flag eseguibile sul file o eseguire un'istanza bash aggiuntiva.
Per una spiegazione dettagliata vedere ad es. https://unix.stackexchange.com/questions/43882/what-is-the-difference-between-sourcing-or-source-and-executing-a-file-i
Puoi usare qualcosa del genere:
for i in `cat foo.txt`
do
sudo $i
done
Tuttavia, se i comandi hanno argomenti (cioè ci sono spazi bianchi nelle righe) potresti dover armeggiare un po' con quello per proteggere lo spazio bianco in modo che l'intera stringa sia vista da sudo
come comando. Ma ti dà un'idea su come iniziare.
puoi creare uno script di shell con questi comandi e poi chmod +x <scriptname.sh>
, quindi eseguilo semplicemente con
./scriptname.sh
È molto semplice scrivere uno script bash
File sh mockup:
#!/bin/sh
sudo command1
sudo command2
.
.
.
sudo commandn
puoi anche eseguirlo semplicemente con una shell, ad esempio:
bash example.txt
sh example.txt