Builtin komutu bash'ta ne yapar?


35

Yerleşik komutun ne olduğunu biliyorum ama builtinkendisi ne işe yarıyor ? Yürütmek which lsbana gösterir /bin/lsama yürütmek which builtinhiçbir şey döndürmez.

man builtinBana sadece biri yerleşik olan yerleşik komutların bir listesini verir builtin. Man sayfasının geri kalanı, bir yerleşikin ne olduğunu açıklar ancak ne builtinolduğunu açıklamaz.

builtin --helpanlatıyor builtin: usage: builtin [shell-builtin [arg ...]]ama hala yaptıklarını değil.

Diğer yerleşik komutların olmadığı şekilde bash'ın bir parçası mı?


3
Unuttun help builtin.
Ignacio Vazquez-Abrams

3
which builtinsonuç vermez, çünkü harici komutlarınwhich yerlerini bildirir . Kabuğa sorarsan, sana şaşırtıcı bir şekilde bunu söyleyecektir . Sen ile aynı bulacaksınız , vbtype builtinbuiltin is a shell builtinaliasset
Toby Speight

1
builtin help builtin
theonlygusti

Yanıtlar:


50

builtinKomut markaları emin oldukça aynı adı taşıyan başka komutu çalıştırarak daha yerleşik komutunun sürümü kabuğunu çalıştırın.

Örneğin, cddizinleri her değiştirdiğinizde bazı ekstra durumlar yazdırmak için adlandırılmış bir kabuk işlevi tanımladığınızı varsayalım. Ama sen berbat ettin ve şimdi dizinleri doğru değiştiremezsin. Böylece builtin cd ~, kırık kabuk fonksiyonunuzu çalıştırmadan başarılı bir şekilde ana dizininize geri dönebilirsiniz.

Bu arada, bash man sayfasının kopyasında "SHELL BUILTIN COMMANDS" adlı bir bölüm var ve bu builtinbölümdeki komutun anlamını tanımlar (aşağıda yazılıdır).

yerleşik kabuk yerleşik [değişkenler]

    Belirtilen kabuk yerleşikini yürütün, bağımsız değişkenleri iletin ve
    çıkış durumunu döndür. Bir işlev tanımlarken bu kullanışlıdır
    adı bir kabuk yerleşimi ile aynıdır;
    fonksiyon içindeki yerleşimin işlevselliği. Cd yerleşiktir
    genel olarak bu yolu yeniden tanımladı.

    Kabuk yerleşik bir kabuk yerleşik değilse dönüş durumu yanlış
    Komut.

14
güzel cevap. Ama beni meraklandırıyor, builtinkomutun bash'tan gerçek yerleşik olduğuna nasıl emin olabilirsiniz ?
Pacopaco

14
@ Pacopaco: Yapamazsınız :-). Sen olabilir geçersiz builtinde: function builtin { echo "Hi from builtin :-)"; }. O zaman builtinartık işe yaramaz.
sleske

12
@ Pacopaco, type builtingerçek olup olmadığını size söyleyecektir builtin. Yapılmayan bir yapıya typesahip olmadıkça type...
Toby Speight

10
oh ... ne yazık ki biri olabilir: alias unset = "echo unset geçersiz kılındı"; alias alias = "eko diğer adı geçersiz kılındı" ... Burada hiçbir şans yok.
Olivier Dulac

8
Bu devam eden tartışmaya bayılıyorum!
Sam Weaver,
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.