2012-03-22 3 views
21

Если у меня есть текстовый файл с отдельной командой на каждой строке, как бы я делал вывод для каждой строки в качестве команды? Я просто не хочу копировать и вставлять по одной строке за раз. Это НЕ МОЖЕТ быть текстовым файлом ... Это может быть любой вид файла, который будет работать.ubuntu запускать текстовый файл как команду

пример .txt

sudo command 1 
sudo command 2 
sudo command 3 

ответ

38

вы можете сделать скрипт с этими командами, а затем chmod +x <scriptname.sh>, а затем просто запустить его

./scriptname.sh 

Ее очень просто написать Баш скрипт

Mockup sh файл:

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

Вы можете написать макет .sh-файла с моим примером – Blainer

+0

В расширениях linux не обязательно (вы даже можете создать файл без расширений). Он работает, даже если расширение является .txt – Saphrosit

+0

Да, но вы должны иметь это «#!/Bin/sh» во главе вашего файла, чтобы ядро ​​узнало, что его сценарий оболочки – Chaos

43

вы также можете просто запустить его с оболочкой, например:

bash example.txt 

sh example.txt 
+6

Просто ярлык, который я искал. Благодарю. – saccharine

+0

также для его отладки вы можете использовать bash -x example.txt –

+0

, поэтому я установил Ubuntu. Я знал, что есть более простой способ. – MJoraid

6

Вы можете использовать что-то вроде этого:

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

Хотя если команды имеют аргументы (т.е. есть пробелы в строках), вам может понадобиться обезьяна с этим немного, чтобы защитить белое пространство, чтобы вся строка была видна sudo в качестве команды. Но это дает вам представление о том, как начать.

Смежные вопросы