2014-03-14 74 views
0

我想實現的是如下所示:(腳本)如何以交互方式啓動gnu屏幕,然後在其中運行一些命令?

  1. 開始在一些終端
  2. 運行GNU屏幕慶典:exec screen
  3. 在後臺啓動我的桌面會話:所以現在我結束startx &
  4. 與一個終端屏幕運行和X運行在背景(在某些vt)準備使用和連接從其他地方通過屏幕。

但我想在腳本中自動執行上述過程(實際上是將其放入我的〜/ .bashrc中)。什麼是簡單和優雅的方式來做到這一點?

我得到的最接近鏡頭是這樣的:

exec screen bash -c "startx; bash" 

但這種方式運行startx無法進入後臺。也就是,

exec screen bash -c "startx &; bash" 

將不起作用。

另外,當谷歌搜索時,我碰到了this thread。但是

exec screen bash -i << EOF 
startx & 
exec < /dev/tty 
EOF 

也不工作。我也試過

exec screen bash -i --rcfile /tmp/somefile 

與在/ tmp/somefile startx &。再次不工作。

任何想法?

+0

該手冊頁涵蓋了這些場景以及更多。 –

+0

另一個說明,我不認爲,你想''startx'在'〜/ .bashrc' :-) – anishsane

+0

@anishsane感謝評論。我會將startx放入〜/ .bashrc加上一些邏輯來確定它是哪個tty,所以startx只會在特定的tty上運行。我曾經這樣做過,現在只是添加一層屏幕會讓事情變得凌亂。 –

回答

1

&;都是命令終止符;你只能使用其中一個。

exec screen bash -c "startx & bash" 
+0

哇!它有點作品。謝謝!但是,在上面的命令行中,startx&process不屬於交互式運行的bash(運行「作業」時不會顯示任何內容),所以與手動啓動有點不同。是否有可能完全模擬手動程序? –

+0

不是我所知道的。我不知道用腳本啓動一個'bash' shell,然後「drop」到交互式shell(類似於'python -i')。您可以使用屏幕命令來簡單地統計bash shell,然後發送按鍵序列「startx&」來模擬輸入它,但我對「屏幕」不再熟悉,無法建議如何操作。 – chepner

+0

事實證明,如果我交換-i選項和--rcfile選項,我的問題中的最後一個命令行將起作用,因爲在bash中,所有長選項必須放在short選項之前。無論如何,如果今天沒有更多的答案,我會接受你的答案:-) –

相關問題