%
относится к '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: no current job» и т. П.), Значит, есть / была работа. Пример:
$> sleep 60 &
$> % echo foo
[1] + 411 running sleep 60
fg: job not found: echo
%
Только что вернул фоновый процесс и запустил его. Через 60 секунд он получил следующий «jobid», который не был найден.
Таким образом: поведение, которое вы испытали, немного странно. Без вашего полного zshrc трудно сказать, что именно происходит. Похоже, вам удалось сообщить zsh, что символ '%' запускает комментарий. Я бы проверил параметр histchars
для его 3-го значения:
$> echo $histchars