t\imeveya \cd(veya "tim"eveya 'cd'veya ${-##*}timeveya ${-+time}ve alıntı ve bu düşünebildiğim açılımları sonunda kadar çözümlenebileceğini diğer her kombinasyon timeveya cdyazma için başka bir yol:), yani cdve time.
Ancak, bu sonuçta kabuk sözdizimi ayrıştırma ve yorumlamaya cdveya timedaha sonra çözülecektir . Özellikle, kabuk anahtar kelime tanıma ve takma ad değiştirme gerçekleştikten çok sonra gerçekleşir.
Bu nedenle, kabuk kendi dilinde anahtar kelimeler aradığında ti\me, timeshell anahtar sözcüğü olarak tanınmaz . Yani:
ti\me echo test
kabuk tarafından basit bir komut olarak değil, basit bir komut olarak kabul edilir time.
Daha sonra içerideki alıntı ti\meişlenir (burada ters eğik çizgi, myine de tırnak işareti gerektirmeyen karakteri alıntılar, alıntı karakteri kaldırılır, alırsınız time) ve bir time komut diğer komutlar gibi (yerleşikler listesinde) aranır. , işlevler ve yürütülebilir dosyalar $PATH. Büyük olasılıkla /bin/timeburada olacak )
Çünkü cd, cdkabuk dilinde bir anahtar kelime yoktur , sadece cdyerleşik bir komut (sizin için önceliklidir /usr/bin/cd). Ancak, cd(gibi alias cd=pushd) için bir takma ad tanımlarsanız , tekrar aynı. Takma ad ikamesi çok erken yapıldığından, alıntı kaldırılmadan önce, için bir takma adınız varsa cdve bunun için bir takma adınız yoksa \cd(çok fazla merminin içinde ters eğik çizgi olan takma adlara izin vermediğini unutmayın), o zaman yazarak:
\cd dir
cdtakma adınızın değiştirilmediğinden emin olursunuz .
Kısacası, bir komut adı veya onun herhangi bir bölümünü alıntı bir kabuk anahtar kelime olarak görülüyor önler (anahtar kelimeler şeyler gibi olmak while, for, if, {... timebir anahtar kelimedir bazı sadece kabukları) ve bunun için olabilecek bir takma ad atlar .
Ancak bu komutu çalıştırılabilir bir dosyaya çözümlemeye zorlamaz $PATH, komut hala ilk olarak işlevler (yaparak yaparak çalışabilirsiniz command time cmd...) ve builtins (yaparak yaparak çalışabilirsiniz env time cmd..., ancak bilmiyorum ) arasında aranır yerleşik timekomutu olan bir kabuk ).
Alıntı yapmanın, typeset/ declare/ export/ local... ailesinin özel yapılarının bazı kabuklardaki davranışları üzerinde de etkisi olabileceğini unutmayın . Bkz . Yerel değişken ataması için tırnak işareti gerekli mi? detaylar için.