Answers:
%
指的是一个“ jobid”,它被用作zsh的“作业控制和过程控制”功能的一部分。引用用户指南:
'fg' is the default operation on jobs referred to with the '%' notation,
so just typing '%1' with no command name would have worked, too.
例:
$> man zshall &
[1] + 31392 suspended (tty output) man zshall
$> jobs
[1] + suspended (tty output) man zshall
$> %
<manpage-opens-for-zshall>
在此处阅读有关此内容的更多信息:http: //zsh.sourceforge.net/Guide/zshguide03.html#l39
要回答您的真实问题:如果您的zsh没有在其中发出警告(“ fg:无当前工作”等),则表明存在/已有工作。例:
$> sleep 60 &
$> % echo foo
[1] + 411 running sleep 60
fg: job not found: echo
在%
刚回到后台进程并运行它。60秒后,它得到了下一个未找到的“ jobid”。
因此:您遇到的行为有些奇怪。没有完整的zshrc,很难说出到底发生了什么。看来您设法告诉zsh'%'字符正在开始注释。我会检查 histchars
参数的第三个值:
$> echo $histchars
%
。也很不错$histchars
,但是我的是井号(!^#
)。我想我的特定情况的答案是zsh中有些后台进程的行为异常。再次感谢您参加Shell课程!