command foo
tanımlanmış foo
bir foo
kabuk işlevi olsa bile komutu çalıştıracaktır . Bu davranış POSIX tarafından istenmektedir .
İşlev foo
içindeki komutu çağırmanıza izin verir foo
. command foo
İşlev olmadan (çağrıldığında) kendisini çağırır ve dairesel bir referans oluşturur.
Eh, bazen foo
kabuk işlevinin aranmasını bastırmak için tam yolundan çalıştırılabilir olarak adlandırabilirsiniz (hantal ve taşınabilir değil, yine de bir tür geçici çözüm), ancak bazı durumlarda yapamazsınız. İçinde Örneğin benim bu cevabı (sonuna yakın) Ben yeniden tanımlamak cd
ve command cd
çünkü bir zorunluluktur bir olsa bile cd
çalıştırılabilir ı kullanabilirsiniz tam yol, bu dizini değiştirmek olmaz. Kullanımı command
ise doğru yolu bu başa.
Ayrıca not command foo
, foo
takma adı tetiklemeyecektir (varsa). ls
Örnek olarak kullandın . En sık karşılaşılan birkaç Linux dağıtımlar takma At ls
için ls --color=auto
varsayılan olarak. Bu durumda ls
ve command ls
farklı sonuçlar verebilir (yani renkli veya değil). POSIX (veya başka bir) tanımının command
takma adlardan bahsetmesi gerekmez, çünkü takma adı (varsa) ilk etapta bar foo
tetiklemez foo
(birkaç istisna dışında bar
, ancak command
bunlardan biri değildir).
Kullanmak İster command foo
için önemli olabilecek bir interaktif kabuk oturumda veya kabuk komut foo
, ancak değil command
yerleşiğini kendisi.