%
se refiere a un 'jobid' que se usa como parte de las características de "control de trabajo y control de proceso" de zsh. Para citar de la guía del usuario:
'fg' is the default operation on jobs referred to with the '%' notation,
so just typing '%1' with no command name would have worked, too.
Ejemplo:
$> man zshall &
[1] + 31392 suspended (tty output) man zshall
$> jobs
[1] + suspended (tty output) man zshall
$> %
<manpage-opens-for-zshall>
Lea más sobre esto aquí: http://zsh.sourceforge.net/Guide/zshguide03.html#l39
Para responder a su pregunta real : Si su zsh no pone una advertencia allí ("fg: no hay trabajo actual" o similar), entonces hay un trabajo IS / WAS. Ejemplo:
$> sleep 60 &
$> % echo foo
[1] + 411 running sleep 60
fg: job not found: echo
El %
acabamos de volver del proceso en segundo plano y lo ejecuta. Después de 60 segundos obtuvo el siguiente 'jobid' que no se encontró.
Por lo tanto: El comportamiento que experimentaste es un poco extraño. Sin su zshrc completo, es difícil saber qué está sucediendo exactamente. Parece que has logrado decirle a tu zsh que el '%' char está comenzando un comentario. Verificaría el histchars
parámetro para su tercer valor:
$> echo $histchars
%
. Buena captura$histchars
también, pero la mía es un signo de hash (!^#
). Supongo que la respuesta a mi caso particular es que hubo algunos procesos en segundo plano que se comportan de manera extraña en zsh. Gracias de nuevo por la lección de shell.