Запустите текстовый файл как команды в Bash
Если у меня есть текстовый файл с отдельной командой в каждой строке, как заставить терминал запускать каждую строку как команду? Я просто не хочу копировать и вставлять по 1 строке за раз. Это не должен быть текстовый файл... Это может быть любой тип файла, который будет работать.
example.txt
:
sudo command 1
sudo command 2
sudo command 3
Ответы
Ответ 1
вы можете сделать оболочку script с этими командами, а затем chmod +x <scriptname.sh>
, а затем просто запустите ее
./scriptname.sh
Очень просто написать bash script
Файл Mockup sh:
#!/bin/sh
sudo command1
sudo command2
.
.
.
sudo commandn
Ответ 2
вы также можете запустить его с помощью оболочки, например:
bash example.txt
sh example.txt
Ответ 3
Вы можете использовать что-то вроде этого:
for i in `cat foo.txt`
do
sudo $i
done
Хотя если команды имеют аргументы (т.е. есть пробелы в строках), вам может понадобиться обезьяна с этим битом, чтобы защитить белое пространство, чтобы вся строка была видна sudo
в качестве команды. Но это дает вам представление о том, как начать.
Ответ 4
казнить
. example.txt
Это делает именно то, что вы просите, без установки исполняемого флага на файл или запуска дополнительного экземпляра bash.
Для подробного объяснения см., Например, https://unix.stackexchange.com/info/43882/what-is-the-difference-between-sourcing-or-source-and-executing-a-file-i