考虑以下(略微愚蠢的)脚本名称“ test1.sh”:
#/bin/bash
#
sleep 10 &
echo sleep pid = $!
pkill sleep
运行它时,不仅得到回声的输出,而且还得到bash关于stderr睡眠死亡的报告:
$ ./test1.sh
sleep pid = 3551
./test1.sh: line 5: 3551 Terminated sleep 10
在这种情况下,我想将打印输出抑制为stderr。我知道我可以在命令行中做到这一点,如下所示:
$ ./test1.sh 2> /dev/null
......但有没有办法从抑制其内的脚本?(我知道我可以将其包装在第二个脚本中,并让包装器将其重定向,但是必须有一些更简单的方法...)
您是否尝试在pkill睡眠后添加重定向2> / dev / null?
—
rahul 2015年
@rahul:是的,我做到了– pkill不是生成消息,bash是。
—
fearless_fool 2015年
我使用kill而不是pkill,并且没有得到stderr。很奇怪..
—
rahul 2015年
@rahul:它可以是内置的还是非内置的?您是否也尝试过使用pkill?
—
fearless_fool 2015年
是的,我相信是。我用pkill遇到了同样的错误,但是用kill却没有。在使用kill时,我使用了pid而不是proc名称。
—
rahul 2015年