%
відноситься до "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: немає поточної роботи" тощо), це IS / WAS робота. Приклад:
$> sleep 60 &
$> % echo foo
[1] + 411 running sleep 60
fg: job not found: echo
%
Щойно повернувся фоновий процес і запускає його. Через 60 секунд у нього з’явився черговий «робота», якого не було знайдено.
Таким чином: поведінка, яку ви пережили, трохи дивна. Без повного zshrc важко сказати, що саме відбувається. Схоже, вам вдалося сказати своєму zsh, що знак '%' починає коментар. Я перевірив би histchars
параметр на 3-е значення:
$> echo $histchars
%
. Хороший улов$histchars
теж, але мій - хеш-знак (!^#
). Я здогадуюсь, тоді відповідь на мій конкретний випадок полягає в тому, що в zsh були деякі фонові процеси, які дивно поводяться. Ще раз дякую за урок оболонки!