2012-03-22 118 views
21

如果我在每一行上都有一個帶有單獨命令的文本文件,我將如何讓終端將每行作爲命令運行?我只是不想一次複製並粘貼一行。它不必是一個文本文件...它可以是任何類型的文件,將工作。ubuntu將文本文件作爲命令運行

例如.TXT

sudo command 1 
sudo command 2 
sudo command 3 

回答

38

你可以做一個shell腳本這些命令,然後chmod +x <scriptname.sh>,然後只是

./scriptname.sh 

它非常簡單運行它寫一個bash腳本

樣機sh文件:

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

你能用我的例子寫一個模型.sh文件嗎 – Blainer 2012-03-22 15:35:20

+0

在linux擴展中不是強制性的(你甚至可以創建一個沒有擴展名的文件)。它可以工作,即使擴展名是.txt – Saphrosit 2012-03-22 15:37:28

+0

是的,但是你應該在文件頭部有這個「#!/ bin/sh」,這樣內核就知道它的shell腳本 – Chaos 2012-03-22 15:38:33

43

你也可以只用一個shell中運行它,例如:

bash example.txt 

sh example.txt 
+6

只是我正在尋找的快捷方式。謝謝。 – saccharine 2013-03-14 21:26:37

+0

也要調試它可以使用bash -x example.txt – 2014-03-03 16:13:56

+0

這就是爲什麼我安裝了Ubuntu。我知道有一個更簡單的方法。 – MJoraid 2017-07-06 05:05:54

6

您可以使用這樣的事情:

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

雖然如果命令具有參數(即行中有空格),您可能必須稍稍用一下來保護空白區域,以便通過sudo將整個字符串看作命令。但它給你一個關於如何開始的想法。