2013-05-16 30 views
2

muttirssi如何添加屏幕或創建它?我目前正在使用此啓動

urxvt -name Irssi/Mutt screen -r Irssi/Mutt 

目前,我所要做的使用我的啓動之前執行以下操作:

screen -S Irssi/Mutt irssi/mutt + Ctrl-a-d 

我所希望做的是:

if [ test_to_see_if_the_screen_exit ] # I need a way to the test 
then 
    urxvt -name Irssi/Mutt -e screen -r Irssi/Mutt 
else 
    create_the_screen_named_Irssi/Mutt_and_detach_it # I need a way to create it 
    urxvt -name Irssi/Mutt -e screen -r Irssi/Mutt 
endif 

有沒有人有解決方案?

+0

以及它不是一個答案,而是建議,TMUX比屏幕要好得多。我已經使用了屏幕和TMUX,TMUX更方便用戶,並且具有更多靈活性 – abasu

+0

您是否有示例? –

+0

我有tmux,在.bashrc中,別名t ='tmux attach || tmux new''這有助於附加到現有會話,或創建一個新的會話。在一個tmux會話中,您可以擁有多個運行單獨程序的窗口。所以,只需將'tmux new'替換爲你想要的。 http://stackoverflow.com/questions/5609192/how-to-set-up-tmux-so-that-it-starts-up-with-specified-windows打開此鏈接將告訴你如何做到這一點 – abasu

回答

1

使用screen -listscreen -ls顯示現有的畫面。

我可能會做你的if...endif位這樣一來,雖然:

screen_opts="" 
case $(screen -list Irssi/Mutt | awk '/Irssi/{print $NF}') in 
    *Attached*) ;; # not sure what you would want here, 
       # but I would probably do 'screen_opts="-x"'... 
    *Detached*) screen_opts="-r" ;; 
    *) screen -wipe # if session is dead, clean it up 
    screen_opts="-S Irssi/Mutt";; 
esac 
urxvt -name Irssi/Mutt -e screen ${screen_opts} 
+0

您必須使用urxvt的-e選項才能啓動該命令。謝謝 –

+0

@JacobIlyane你是對的......我只是複製了OP的命令...現在修復了它。 – twalberg

+0

這是正確的糾正它:) –

1

您可以使用screen -list | grep Irssi/Mutt來查看您的會話是否已經存在。

但它更容易只是讓screen找出是否存在會話:

screen -r Irssi/Mutt || screen -S Irssi/Mutt irssi/mutt 

這將嘗試連接到現有的會話,如果附着失敗,創建一個新的(而且你不需要立即分離並重新連接,只留在會話中)。

爲了urxvt運行的是,你必須明確指定sh

urxvt -name Irssi/Mutt -e sh -c 'screen -r Irssi/Mutt || screen -S Irssi/Mutt irssi/mutt' 
+0

謝謝,您的anwser正常工作。 –

相關問題