2017-02-05 218 views
0

即時通訊編寫一個shell腳本,我需要我的腳本來打開一個xterm窗口運行一個命令,而不關閉xterm的腳本。shell腳本 - 打開xterm窗口執行命令,並繼續執行腳本

該代碼基本上是一個菜單的巨大情況。

這是我的腳本的例子

... 
example() { 
echo -n "thingy > " 
read thingy 
echo -n "thingy1> " 
read thingyl 
xterm -hold -e *el command* 
menux 
} 
... 

問題:

腳本打開的xterm執行該命令並保持窗口打開,但不會繼續腳本,如果我按ctrl + c將其去回到外殼

回答

0

這種變化

nohup xterm -hold -e *el command* & 

會做你想做的。 nohup告訴shell在父進程退出時不發送HUP(1)信號給這個子進程。 &使命令xterm在後臺運行,以便腳本可以繼續。 man nohup有詳細信息。

如果您想取消輸出,那麼以下內容會將所有輸出轉移到/dev/null,並且2>&1將確保stderr被定向到相同的位置。如果你想看到你的錯誤,那麼不要執行第二次重定向。

nohup xterm -hold -e *el command* > /dev/null 2>&1 & 

man bash具有重定向的細節。

+0

它的作品,但我怎麼能隱藏nohup消息(nohup:追加輸出到'nohup.out'),並停止從保存the.out文件? – n0t313

+0

我用這個信息更新了答案。 –

+0

非常感謝! – n0t313