【发布时间】:2012-08-15 03:56:15
【问题描述】:
我在cyberciti.biz 的评论中看到了这个有趣的问题。
我发现我什至找不到一种灵活的方法来使用 sh 在单行命令中执行此操作。
我对解决方案的想法是:
tmp_file=`mktemp`
(./script 2>$tmp_file >/dev/null; cat $tmp_file) | ./other-script
rm tmp_file
但是你看,这不是同步的,而且致命的是,它太丑了。
欢迎分享你的想法。 :)
【问题讨论】:
-
你试过
./script.sh 2>&1 > /dev/null吗? -
@cnicutar 看来我一开始理解错了。我想
2>&1会将stderr重定向到stdout,然后1>/dev/null会将它们都重定向到/dev/null。好吧,我需要重新学习一些 shell。 -
就我而言,
2>&1需要放在最后,例如:if ping -c 1 fake.x > /dev/null 2>&1;then echo true;else echo false;fi