我刚刚将一堆代码粘贴到我的 shell 中,但%
在运行命令之前忘记删除前导。它似乎什么也没做。为什么这在我的 shell 中什么也没做(嘚)?
> % echo foo
在狂欢,我得到以下
> % echo foo
bash: fg: %: no such job
我只是想确保运行我的命令没有产生一些副作用。
答案1
%
指的是“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