%
mengacu pada 'jobid' yang digunakan sebagai bagian dari fitur "kontrol pekerjaan dan kontrol proses" dari zsh. Mengutip dari panduan pengguna:
'fg' is the default operation on jobs referred to with the '%' notation,
so just typing '%1' with no command name would have worked, too.
Contoh:
$> man zshall &
[1] + 31392 suspended (tty output) man zshall
$> jobs
[1] + suspended (tty output) man zshall
$> %
<manpage-opens-for-zshall>
Baca lebih lanjut di sini: http://zsh.sourceforge.net/Guide/zshguide03.html#l39
Untuk menjawab pertanyaan Anda yang sebenarnya : Jika zsh Anda tidak memberikan peringatan di sana ("fg: tidak ada pekerjaan saat ini" atau sejenisnya) maka ada IS / ADA pekerjaan. Contoh:
$> sleep 60 &
$> % echo foo
[1] + 411 running sleep 60
fg: job not found: echo
Yang %
baru saja kembali proses latar belakang dan menjalankannya. Setelah 60 detik mendapat 'jobid' berikutnya yang tidak ditemukan.
Jadi: Perilaku yang Anda alami agak aneh. Tanpa zshrc penuh Anda, sulit untuk mengatakan apa yang sebenarnya terjadi. Sepertinya Anda telah berhasil memberi tahu zsh Anda bahwa karakter '%' memulai komentar. Saya akan memeriksa histchars
parameter untuk nilai ke-3:
$> echo $histchars
%
. Tangkapan bagus$histchars
juga, tapi milikku adalah tanda pagar (!^#
). Saya menduga jawaban untuk kasus khusus saya kemudian adalah bahwa ada beberapa proses latar belakang berperilaku aneh di zsh. Terima kasih lagi untuk pelajaran shell!