我有这样的文件(text.txt):
ls -al
ps -au
export COP=5
clear
每一行对应一个命令。在我的脚本中,我需要读取每一行并启动每个命令。
ps:我尝试了所有这些选项,并且对于所有这些选项,我对命令“export”也有同样的问题。在文件中有“export COP = 5”,但在运行脚本后,如果我在同一终端中回显$ COP,则不显示任何值
答案 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