Shell
在沒有終端輸出的情況下執行命令
讓我介紹一下我的問題的背景。我正在使用一個終端 RSS 閱讀器
newsboat
,它允許使用宏對連結進行操作。例如,我有一個正在執行的宏cd ~/videos && youtube-dl %u
,它將下載一個 youtube 影片到~/videos
. 但是, 的輸出youtube-dl
將在我的終端中列印,直到下載完成,此時我無法繼續使用newsboat
.我想知道如何表達該命令,以便它在“其他地方”執行,以便我可以立即繼續使用執行它的終端。
如果您根本不需要輸出,則將其重定向到 /dev/null
yourcommand > /dev/null 2>&1
否則你可以重定向到一個文件:
yourcommand > /somwhere/file 2>&1
當您從另一個應用程序執行命令並且想要立即使用新聞閱讀器時,您可能希望在後台執行該命令。我不確定它在這條新聞船上是如何工作的,但是在 shell 中,您可以使用 & 將程序發送到後台
yourcommand > /somwhere/file 2>&1 &
要在後台靜默執行命令,即使終端隨後關閉也會“存活”,請
screen
在分離模式下使用:screen -dm your_command(-s)
screen
使用執行執行的命令重新附加screen -r
要分離重新連接的螢幕,請按
CTRL+A+D
。如果沒有
screen
您應該使用 執行命令nohup
,因此如果終端隨後關閉,該程序將執行,如screen
實用程序:nohup your_command(-s) &>/dev/null &