0

以下 Z shell 代码有效:

emacs &  
disown emacs  

但以下没有:

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

后者给出了一个 disown 的错误,说它找不到名为 emacs 的工作。我怎样才能解决这个问题?

4

1 回答 1

2

如果您总是想立即取消该进程,您可以使用&|or&!而不是 plain&在后台运行该进程并一步一步取消它。

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

disown '"$a"'

在命令启动后调用jobs将显示在命名作业之前不会删除引号和替换变量,因此您需要在命名要取消的作业时包含这些内容。

于 2013-10-02T01:30:08.347 回答