Bash脚本 - 运行与文件行对应的命令

时间:2014-04-04 12:59:19

标签: bash file command

我有这样的文件(text.txt):

ls -al
ps -au
export COP=5
clear

每一行对应一个命令。在我的脚本中,我需要读取每一行并启动每个命令。

ps:我尝试了所有这些选项,并且对于所有这些选项,我对命令“export”也有同样的问题。在文件中有“export COP = 5”,但在运行脚本后,如果我在同一终端中回显$ COP,则不显示任何值

3 个答案:

答案 0 :(得分:0)

while IFS= read line; do eval $line; done < text.txt

要小心,通常不建议使用eval,因为它非常强大且容易被滥用。
但是,如果没有非特权用户对text.txt的影响,那就应该没问题。

答案 1 :(得分:0)

cat test.txt | xargs -l1 bash -c '"$@"' echo

答案 2 :(得分:0)

为了避免混淆,我只需将文件从text.txt重命名为text,然后添加一个shebang(例如#!/bin/bash)作为文件的第一行。通过调用chmod +x text确保它是可执行的。然后你可以按预期执行它。

$ cat text
#!/bin/bash
ls -al
ps -au
clear

$ chmod +x text
$ ./text