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



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

ls -al
ps -au
export COP=5
clear

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

ps:我尝试了所有这些选项,所有这些选项都与"导出"命令有相同的问题。文件中有"导出COP=5",但是运行脚本后,如果我在同一终端中回显$COP,则不会显示任何值

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

请注意,通常不建议使用eval,因为它非常强大且容易被滥用。
但是,如果没有非特权用户对文本的影响风险.txt则应该没问题。

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

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

$ cat text
#!/bin/bash
ls -al
ps -au
clear
$ chmod +x text
$ ./text

相关内容

  • 没有找到相关文章

最新更新