
我正在嘗試使用以下命令在螢幕模式下運行命令
screen -dmS screen_name sed -i 's/a/b/'g some-file.txt
什麼都沒發生。當我將相同的命令放入腳本中並運行該命令時:
screen -dmS screen_name bash -c /path/to/script
有用。我的問題是,我可以在守護程式模式下執行命令而不必先將其放入腳本中嗎?基本上,我需要這個守護進程功能,因為它有助於並行運行多個命令,透過將每個命令拋出到單獨的螢幕守護程式上,在程式完成後自動終止,從而對大檔案並行運行多個sed 指令。謝謝
答案1
我想問題出在 -S 上,如果你嘗試省略 -S 選項,它應該可以工作,即使沒有 bash -c 所以試試這個
screen -dm sed -i 's/a/b/'g some-file.txt
那應該有效。 BTW 螢幕未更新,您應該考慮切換到 tmux。它可以為您提供更多功能。
您可以鍵入以下內容來安裝 tmux:
sudo apt-get install tmux
所以你的程式碼應該是這樣的:
tmux new-session -d -s foo 'sed -i 's/a/b/'g some-file.txt'
我可以測試它
tmux new-session -d -s hello 'top'
如果你輸入
tmux attach -t hello
它將帶您進入與 top 的會話。希望有幫助。查看
man tmux
對於所有功能並檢查這裡取得全面的備忘單
答案2
這對你有用嗎?
screen -dmS screen_name bash -c "sed -i 's/a/b/'g some-file.txt"