2012-03-22 9 views
21

Se ho un file di testo con un comando separato su ogni riga, come faccio a eseguire il terminale ogni riga come comando? Non voglio semplicemente copiare e incollare 1 riga alla volta. Non deve essere un file di testo ... Può essere qualsiasi tipo di file che funzionerà.ubuntu esegue il file di testo come comando

esempio .txt

sudo command 1 
sudo command 2 
sudo command 3 

risposta

38

si può fare uno script di shell con questi comandi, e poi chmod +x <scriptname.sh>, e poi basta eseguirlo

./scriptname.sh 

E 'molto semplice da scrivere uno script bash

Mockup sh file:

#!/bin/sh 
sudo command1 
sudo command2 
. 
. 
. 
sudo commandn 
+0

è possibile scrivere un file mockup .sh con il mio esempio – Blainer

+0

Nelle estensioni di linux non è obbligatorio (è possibile anche creare un file senza estensioni). Funziona anche se l'estensione è .txt – Saphrosit

+0

Sì, ma dovresti avere questo "#!/Bin/sh" all'inizio del tuo file in modo che il kernel sappia che è uno script di shell – Chaos

43

si può anche solo eseguirlo con un guscio, ad esempio:

bash example.txt 

sh example.txt 
+6

Solo la scorciatoia che stavo cercando. Grazie. – saccharine

+0

anche per eseguire il debug è possibile utilizzare bash -x esempio.txt –

+0

questo è il motivo per cui ho installato Ubuntu. Sapevo che c'è un modo più semplice. – MJoraid

6

si può usare qualcosa di simile:

for i in `cat foo.txt` 
do 
    sudo $i 
done 

Anche se i comandi hanno argomenti (vale a dire c'è uno spazio bianco nelle linee) potrebbe essere necessario scimmiottare un po '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.

Problemi correlati