我的命令中有一堆命令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 & )
$
如果您的commad也產生一些輸出到STDOUT和/或STDERR,請將它們透過管道傳送到/dev/null
:
$ ( alertme > /dev/null 2>&1 & )
答案2
這裡另一個答案的稍微簡潔的版本:
(&>/dev/null alertme &)