ne bash komut `komut` için kullanılır ve kabuk komut dosyasında göründüğünde ne


1

Bir kabuk betiği yazarken, commandayrılan bir kelime olduğunu biliyorum . Sonra farkettim command , ayrıca bir bash komutu.

  • command lsaynı sonucu verir ls.
  • command ls | grep xxx onsuz aynı sonucu verir.

Sonra bir bash komutu olduğunda ne için kullanıldığını merak ediyorum. Ve kabuk betiğinde olduğunda ne için kullanılır. Teşekkürler!

Yanıtlar:


2

command footanımlanmış foobir fookabuk işlevi olsa bile komutu çalıştıracaktır . Bu davranış POSIX tarafından istenmektedir .

İşlev fooiç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 fookabuk 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 cdve command cdçünkü bir zorunluluktur bir olsa bile cdçalıştırılabilir ı kullanabilirsiniz tam yol, bu dizini değiştirmek olmaz. Kullanımı commandise doğru yolu bu başa.

Ayrıca not command foo, footakma adı tetiklemeyecektir (varsa). lsÖrnek olarak kullandın . En sık karşılaşılan birkaç Linux dağıtımlar takma At lsiçin ls --color=autovarsayılan olarak. Bu durumda lsve command lsfarklı sonuçlar verebilir (yani renkli veya değil). POSIX (veya başka bir) tanımının commandtakma adlardan bahsetmesi gerekmez, çünkü takma adı (varsa) ilk etapta bar footetiklemez foo(birkaç istisna dışında bar, ancak commandbunlardan biri değildir).

Kullanmak İster command fooiçin önemli olabilecek bir interaktif kabuk oturumda veya kabuk komut foo, ancak değil commandyerleşiğini kendisi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.