t\imeatau \cd(atau "tim"eatau 'cd'atau ${-##*}timeatau ${-+time}dan setiap kombinasi lain dari mengutip dan ekspansi Anda bisa memikirkan yang akhirnya akan memutuskan untuk timeatau cd), adalah bahwa: cara lain untuk menulis cddan time.
Namun, itu akhirnya akan menyelesaikan cdatau timedi kemudian hari parsing dan interpretasi sintaksis shell. Secara khusus, itu terjadi lama setelah pengenalan kata kunci shell dan penggantian alias terjadi.
Jadi, pada saat shell adalah mencari kata kunci dalam bahasa, ia tidak mengakui ti\mesebagai timekata kunci shell. Jadi a:
ti\me echo test
akan dikenali oleh shell sebagai perintah sederhana sebagai lawan dari timekata kunci diikuti oleh perintah sederhana.
Maka tanda kutip ti\meakan diproses (di sini backslash mengutip mkarakter yang tidak perlu kutip, karakter kutip dihapus, Anda dapatkan time) dan time perintah akan dicari seperti perintah lain (dalam daftar builtin , fungsi dan file yang dapat dieksekusi $PATH. Kemungkinan besar akan ada di /bin/timesini)
Sebab cd, tidak ada cdkata kunci dalam bahasa shell, hanya cdperintah builtin (yang lebih diutamakan daripada Anda /usr/bin/cd). Namun, jika Anda mendefinisikan alias untuk cd(suka alias cd=pushd), sama lagi. Sebagai pengganti alias dilakukan sangat awal, sebelum penghapusan kutipan, jika Anda memiliki alias untuk cddan bukan untuk \cd(perhatikan bahwa tidak banyak shell mengizinkan alias dengan backslash di dalamnya), kemudian dengan menulis:
\cd dir
Anda memastikan cdalias Anda tidak diganti.
Singkatnya, mengutip nama perintah atau bagian dari itu mencegah dari yang dilihat sebagai kata kunci shell (kata kunci menjadi hal-hal seperti while, for, if, {... timeadalah kata kunci di beberapa kerang saja), dan melewati alias Anda mungkin memiliki untuk itu .
Namun itu tidak memaksa perintah untuk menyelesaikan file yang dapat dieksekusi $PATH, perintah masih dicari pertama di antara fungsi (yang dapat Anda kerjakan dengan melakukan command time cmd...) dan builtins (yang dapat Anda kerjakan dengan melakukan env time cmd..., meskipun saya tidak tahu tentang sebuah shell yang memiliki timeperintah builtin ).
Perhatikan bahwa mengutip juga dapat memiliki pengaruh pada perilaku builtin khusus dari typeset/ declare/ export/ local... keluarga di beberapa kerang. Lihat Apakah kutipan diperlukan untuk penugasan variabel lokal? untuk detail.