在Bash中将文本文件作为命令运行

时间:2012-03-22 15:31:35

标签: linux bash ubuntu terminal command

如果我有一个文本文件,每行都有一个单独的命令,我如何让终端作为命令运行每一行?我只是不想一次复制和粘贴1行。它不必是一个文本文件......它可以是任何类型的文件。

example.txt

sudo command 1
sudo command 2
sudo command 3

5 个答案:

答案 0 :(得分:65)

你也可以用shell运行它,例如:

bash example.txt

sh example.txt

答案 1 :(得分:59)

您可以使用这些命令创建一个shell脚本,然后chmod +x <scriptname.sh>,然后通过

运行它
./scriptname.sh

编写bash脚本非常简单

样机sh文件:

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

答案 2 :(得分:6)

执行

. example.txt

这完全可以满足您的要求,而无需在文件上设置可执行标志或运行额外的bash实例。

有关详细说明,请参见https://unix.stackexchange.com/questions/43882/what-is-the-difference-between-sourcing-or-source-and-executing-a-file-i

答案 3 :(得分:5)

您可以使用以下内容:

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

虽然如果命令有参数(即行中有空格),你可能不得不用一点点来保护空白,以便sudo看到整个字符串作为命令。但它让你了解如何开始。

答案 4 :(得分:0)

cat /path/* | bash

cat commands.txt | bash