Linux gnu screen - 螢幕啟動時立即執行命令?

Linux gnu screen - 螢幕啟動時立即執行命令?

在我的 .screenrc 檔案中,我使用這一行來開啟一個螢幕視窗:

screen -t "normal"

此行打開另一個視窗並運行 top:

screen -t "top" top

這些工作得很好,所以我想立即df && ls -alh在第三個視窗中運行,所以我將這一行放入 .screenrc 中:

screen -t "df" df && ls -alh

df 視窗永遠不會出現,所以我認為 && 可能是問題的原因,並僅使用 df 進行了嘗試。

screen -t "df" df

df 視窗仍然無法出現。

問題:如何透過 screenrc 在同一螢幕視窗中執行一個命令,然後執行另一個命令?我希望它的行為與 bash 中的行為完全相同。感謝您的任何建議。

答案1

它可能會出現,但運行後就會消失。

請嘗試以下操作:

screen -t "df" bash -c 'df && sleep 50'

df這將顯示命令的輸出幾50秒鐘。

為了獲得有用的df輸出,我建議您使用watch

screen -t "df" watch -n 10 df

該命令每 10 秒運行一次df,因此您將了解該終端機上可用磁碟空間的實際狀態。

答案2

舊問題,但在我發現最乾淨的答案之前出現在搜尋結果中這裡

一些對我有用的解決方案:

screen -t Files zsh -c 'ls -lahG; exec zsh'

在我的.screenrc 檔案中,「ls」命令/進程完成後,「exec zsh」會在某個區域內的視窗中開啟另一個命令提示字元(類似於在GNU 螢幕的視窗中的shell 中手動鍵入命令的行為) ;我假設它比運行“睡眠”命令更有效,但如果我錯了,請糾正。

screen -t Files zsh -c 'vim .'

以上適用於使用“ls”的特定情況。

相關內容