Bash
如何從 bash 執行程序而忽略其標準輸出,以便我可以執行更多程序?
我想做的是從內部創建一個新程序,
bash
就像什麼都沒發生一樣,除了我的終端在下一行,該程序通常會竊取我的標準輸出……假設我
apt-get update
現在想,但我想編輯一些配置文件而不是觀看所有下載,所以我想執行vi /some/config
. 我應該可以同時做這兩個,對吧?澄清一下,因為我在詢問之前做了一些閱讀,我希望這個過程能夠在終端關閉之後繼續存在
$$ if it has not yet come to its end $$所以我想這不是一個子程序,可能不是一個子外殼,也許是一個叉子?叉子是我的意思嗎?我怎麼這樣分叉?
聽起來您正在尋找如何在後台執行程序,讓您同時繼續其他工作。這是通過在命令末尾添加一個 & 符號來實現的。例如,執行幾毫秒後,
sleep 5h
您可以在後台命令執行其操作時輸入另一個命令。為了使該過程在終端關閉後仍然存在,您必須使用 將其孤立disown
,並且看不到標準輸出(或標準錯誤),您可以使用redirects。請參閱流程管理和作業控制以獲得出色的文件。或者,您可以在前台執行命令,然後簡單地啟動另一個終端來執行其他操作。作業系統負責其餘的工作。
“< /dev/null” 正在從 /dev/null 讀取標準輸入 - 正常重定向輸入。這會立即返回 EOF,即它正在從一個空文件中讀取。對於您有時想要從 STDIN 讀取但不是在這種情況下的情況,這是一個有用的習慣用法。