t\ime
veya \cd
(veya "tim"e
veya 'cd'
veya ${-##*}time
veya ${-+time}
ve alıntı ve bu düşünebildiğim açılımları sonunda kadar çözümlenebileceğini diğer her kombinasyon time
veya cd
yazma için başka bir yol:), yani cd
ve time
.
Ancak, bu sonuçta kabuk sözdizimi ayrıştırma ve yorumlamaya cd
veya time
daha 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
, time
shell 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\me
işlenir (burada ters eğik çizgi, m
yine 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/time
burada olacak )
Çünkü cd
, cd
kabuk dilinde bir anahtar kelime yoktur , sadece cd
yerleş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 cd
ve 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
cd
takma 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
, {
... time
bir 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 time
komutu 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.