bash - 从测试文件中读取命令并执行

标签 bash shell

我正在尝试编写一个 shell 测试程序,它将我的程序的输出与示例程序进行比较。我已将命令列表存储在文本文件中,如下所示: 命令.txt:

echo line A > a
echo line A > b    
./program a b

shell 测试如下所示:

cat $testname | while read LINE
do  
   echo -e "$LINE$"
   $LINE
done

但程序不是打包文件 a 和 b,而是生成以下内容:

echo line A > a
line A > a
echo line B > b
line B > b

如何执行命令,就像在 shell 文件中编写的那样,并将输出重定向到另一个文件?

最佳答案

我认为唯一的方法是使用eval:

cat "$testname" | while read -r; do  
   echo "$REPLY"
   eval "$REPLY"
done

如果您只运行 $LINE,它将执行分词,但不会执行 I/O 重定向,因此它只会将 > 作为普通参数传递给 回显

关于bash - 从测试文件中读取命令并执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52622663/

相关文章:

bash - 在 Azure 中触发 shell 脚本

linux - 如何使用 linux 命令使用递归搜索查找具有给定目录下位置的文件名列表以及精确模式匹配

php - 通过 Php 表单创建用户(Bash 脚本)

windows - Mongo shell "this app can' t 在您的电脑上运行,要找到适合您电脑的版本,请与软件发行商联系。”

在 shell 中用管道连接 n 个命令?

Linux Shell 脚本 - 如何获取参数 $n 的上层目录

regex - Grep 查找以特定字符结尾的字符串

Bash %s 格式说明符在打印输出时消除了字符串中的空格

python - 将 Python 设置为 stdout 以匹配终端的编码

linux - 您可以在远程运行的 shell 脚本中提示用户输入吗?