
在我的 .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”的特定情況。