2011-06-21 51 views
5

我有一個zsh腳本,我想運行這樣它也會加載我的.zshrc文件。 我相信我必須在交互模式下運行我的腳本?如何阻止zsh腳本被掛起(tty輸出)

因此,我的劇本是這樣開始的:

#!/bin/zsh -i 

if [ $# = 0 ] 
then 
    echo "need command line paramter..." 
    exit 
fi 

然而,當我嘗試在後臺運行此腳本,我的腳本將暫停(即使我通過在正確數量的參數):

[1] + suspended (tty output) 

我的問題是:我怎樣才能製作一個腳本,可以在後臺運行,也加載我的啓動.zshrc文件?如果我必須將其置於交互模式,那麼如何避免暫停tty輸出問題?

謝謝

+2

請包括您用來啓動腳本的完整命令。 – Flimzy

回答

6

不要使用交互模式作爲散列爆炸!

相反,在腳本源的zshrc文件,如果你想讓它:

#!/bin/zsh 
source ~/.zshrc 
... 

對於未來的參考,你可以使用disown bultin從外殼脫離之前轉到後臺工作,所以它不能暫停或其他任何事情。父殼然後可以用不封閉的進程影響:

$ ./my_command &! 
:當您使用 &!運營商,而不是僅僅 &啓動程序

$ disown %1 

您可以通過命令行直接做到這一點