不能否认Z shell变量

时间:2013-10-02 00:21:41

标签: shell zsh

以下Z shell代码有效:

emacs &  
disown emacs  

但以下情况并非如此:

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

后者给出了一个错误,表示无法找到名为emacs的作业。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

如果您总是希望立即取消该流程,则可以使用&|&!而不是普通&来在后台运行该流程,并在一步中将其取消。< / p>

如果您真的想将此作为单独步骤执行,则可以在disown的参数周围放置单引号:

disown '"$a"'

在命令启动后调用jobs将显示在命名作业之前不会发生删除引号和替换变量,因此在命名要删除的作业时需要包括这些引号