我的系统中有一堆命令,zshrc
它们会在后台调用另一个命令。后台命令是文本转语音程序的别名(我使用它在测试套件和补丁等进程完成时给我音频提示)。
目前它的调用方式如下:
alert "Message for this current task" &
非常简单。
但是,当我使用这种格式时,我得到以下输出:
$ alert "Foobar" &
[1] 85072
$
[1] + done alert "Foobar"
$
我想抑制 pid 和消息的输出done
。我该怎么做?
我试过了alert "Foobar" > /dev/null &
,但这只会将警报的输出传送到 devnull。
我尝试过alert "Foobar" & > /dev/null
,但却产生了意想不到的坏事,我不完全理解。
如何&
在‘安静’模式下使用?
答案1
您可以使用子 shell 来摆脱作业控制消息:
$ alias alertme="xmessage Alert!"
$ ( alertme & )
$
如果你的命令还产生一些输出到 STDOUT 和/或 STDERR,请将它们通过管道传输到/dev/null
:
$ ( alertme > /dev/null 2>&1 & )
答案2
这里是另一个答案的稍微简洁一些的版本:
(&>/dev/null alertme &)