Bash声明的含义

时间:2014-12-04 15:14:35

标签: bash grep

我正在开发一个项目,它由一个自动脚本运行。该脚本包含以下行:

./executable ./dev | grep -i "GET.*index.*200" > ./dev/logs/log1

我的代码写入stdout,但它永远不会写入log1。如果我改变它并删除grep命令,它写得很好。任何帮助都会受到赞赏,因为我似乎并不理解grep。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用命令重命名脚本“executable”中的std输出:

exec > ./dev/logs/log1
exec 2> ./dev/logs/errlog1

所以,现在不需要使用“>”在行

./executable ./dev | grep -i "GET.*index.*200"

另外,我建议您在脚本中仅使用绝对路径。

PS。 [offtop]我还不能写评论(声誉不够)。