Bash
重定向失敗
我編寫了一個將 PulseAudio 與Snapserver集成的腳本。我有一個我無法擺脫的錯誤。它在這一行(目前在原始碼中的第 183 行):
snapserver -s pipe:///tmp/snapfifo?name=Radio&mode=read 1>/dev/null 2>/dev/null
它將 Snapserver 作為使用者守護程序啟動。問題是儘管重定向,它仍會繼續登錄到終端。我不知道這是怎麼可能的,我想阻止它。
當它的終端關閉時,該程序成為一個分離的程序,所以我一直在考慮如果可能的話已經開始它分離。類似的東西
bash --notty
。據我檢查,Snapserver 本身沒有任何用於記錄重定向的選項。在 Bash 中是否有類似的選項?噓?為什麼重定向無論如何都會失敗?
核心問題似乎是
&
在“Radio”之後和“mode”之前的 URL 中。它結束 snapserver 命令並開始一個新命令(輸出被重定向的變數賦值),而 snapserver 輸出不被重定向。根據您的評論,修改後的命令是:
snapserver -s 'pipe:///tmp/snapfifo?name=Radio&mode=read' &>/dev/null &