我擔心這可能是重復的,但我找不到匹配的問題。
我主要在命令列上作業。如果我想簡單地打開一個 pdf 檔案,我想保持我的實際命令列作業,而不是被任何輸出淹沒。
一般來說
evince my_file.pdf </dev/null &>/dev/null &
做這項作業...但打字不是很方便。所以我嘗試添加一個函式:
function exec_in_background_silent() {
"$@" </dev/null &>/dev/null &
}
這種作業的目的是運行分離的傳遞命令......但像這樣呼叫它:
exec_in_background_silent evince my_file.pdf
讓我再次失去我的命令列,因為我認為現在它等待函式本身完成:(
如果我添加另一個&符號,它可以正常作業:
exec_in_background_silent evince my_file.pdf &
但是:有沒有辦法擺脫它?
(evince 可能是一個不好的例子,因為無論如何它都不是很健談......但還有其他人;))
編輯以獲取更多詳細資訊:
我正在運行 Ubuntu
echo "${BASH_VERSION}"
5.0.17(1)-release
- 呼叫后命令列被鎖定
- 按 Enter 得到新的空行
- 按下
[strg] [c]給出以下輸出并終止 evince
exec_in_background_silent evince my_file.pdf
[1] 12234
^C
[1] Fertig < /dev/null &> /dev/null
uj5u.com熱心網友回復:
在 bash 的聯機幫助頁中,它說:
當 bash 異步啟動作業(在后臺)時,它會列印如下一行:
[1] 25647表明此作業是作業編號 1,并且與此作業關聯的管道中最后一個行程的行程 ID 為 25647。單個管道中的所有行程都是同一作業的成員。Bash 使用作業抽象作為作業控制的基礎。
@Dimitre Radoulov 在另一篇SO 帖子中說:
您可以通過將呼叫放在子外殼中來抑制該輸出:
(echo "你好,我是后臺任務" &)
因此,為了避免作業號和行程 ID 輸出行,您應該像這樣更改您的函式:
function exec_in_background_silent() {
("$@" </dev/null &>/dev/null &)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/379755.html
上一篇:域和子域.htaccess重定向
