Menjawab pertanyaan ini saya menemukan perbedaan yang sangat lucu (dan halus) antara perilaku dalam bash
dan zsh
:
Dalam bash
:
romano@RRyS:~$ pwd
/home/romano
romano@RRyS:~$ alias x="cd /bin && ./echo A >/dev/null &"
romano@RRyS:~$ x
[1] 16611
romano@RRyS:~$ pwd
/home/romano
Seperti yang Anda lihat, eksekusi alias x
dilakukan dalam subkulit dan direktori saat ini tidak berubah.
Tidak di zsh
:
[romano:~] % pwd
/home/romano
[romano:~] % alias x="cd /bin && ./echo A >/dev/null &"
[romano:~] % x
[1] 16744
[1] + 16744 done ./echo A >/dev/null
1& [romano:/bin] % pwd
/bin
[romano:/bin] %
di sini direktori diubah.
Tampaknya &
di bash
memiliki prioritas yang berbeda dari di zsh
--- Maksud saya, perintah itu tampaknya dibaca sebagai
(cd /tmp && echo A) &
di bash
dan sebagai
cd /tmp && (echo A &)
di zsh
. Apakah ini benar atau penyebab dari perilaku yang berbeda adalah penyebab lainnya?