小编Tiu*_*uri的帖子

在作业脚本中使用stdout重定向到/ dev/null的grep是什么意思?

我有一个bash脚本作为bash作业提交.它创建一些文件,执行一些计算,将输出文件移动到其他地方并清理.对于移动输出文件,它包含以下行:

set -e
mv $tmp/stdout.txt $current/tmp.stdout.txt
grep Report $current/tmp.stdout.txt >/dev/null 2>&1
mv $current/tmp.stdout.txt $current/stdout.txt
set +e
Run Code Online (Sandbox Code Playgroud)

如果计算成功,则输出文件stdout.txt包含多行开头Report; 但如果没有,则没有.进一步处理检查$current/stdout.txt文件是否存在(否则重新提交作业).

第一个mv将输出文件从临时目录移动到临时名称下的最终目录; 第二个mv将输出文件重命名为其最终名称.但是grep介于两者之间的目的是什么?如果输出文件包含行Report,则将它们重定向到\dev\null并且没有任何反应.如果输出文件不包含任何行Report,则它不会输出任何内容,既不会重定向stdout也不会重定向stderr.所以,我的印象是,这条线什么都不做,我应该取代mv+ grep+ mv由单一mv.我在这里忽略了哪些功能?

bash grep

0
推荐指数
1
解决办法
44
查看次数

标签 统计

bash ×1

grep ×1