%
относится к '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
%
. Хороший улов$histchars
тоже, но мой хеш-знак (!^#
). Я предполагаю, что ответ на мой конкретный случай заключается в том, что в zsh были некоторые фоновые процессы, ведущие себя странно. Еще раз спасибо за урок снаряда!