Bash

如何從 bash 執行程序而忽略其標準輸出,以便我可以執行更多程序?

  • July 3, 2017

我想做的是從內部創建一個新程序,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 讀取但不是在這種情況下的情況,這是一個有用的習慣用法。

引用自:https://unix.stackexchange.com/questions/374969