2013-10-02 33 views
0

以下的Z shell代碼的工作:不能否認的Z shell變量

emacs & 
disown emacs 

但以下不會:

a="emacs" 
"$a" & 
disown "$a" 

後者給出了不認說,它無法找到工作的錯誤命名爲emacs。我怎樣才能解決這個問題?

回答

2

如果您始終要立即拒絕此過程,則可以使用&|&!而不是普通的&在後臺運行該過程,並且只需一步即可解除該過程。

如果你真的想這樣做,作爲一個單獨的步驟,您可以將自變量用單引號disown

disown '"$a"' 

調用jobs後啓動的命令就會發現,消除了引號和更換變量不會在作業命名後纔會發生,因此您需要在命名您要取消的作業時包含這些變量。

+0

有趣。所以這個工作是在*參數擴展之前創建的* – chepner