bash sekmesi tamamlama kabuk komut dosyalarında çalışmıyor


0

Fedora 19 sistem sekmesinde sh, komut dosyası dosya adı a ile bitmediği sürece, komut satırının başında bir tane varken bash komut dosyaları için çalışmaz .sh.

Bu, eğer yazarsam:

$ sh file<tab>

Ve mevcut dizin şunları içerir:

filename

... sekme tamamlama çalışmıyor.

Ancak mevcut dizin içeriyorsa:

filename.sh

Tamamlama işleri.

Tamamlama, her şey için işe yarar, bu yüzden başlayan komutlar için özel bir tamamlayıcı olduğundan şüpheleniyorum shve biten dosyaları arıyor .sh.

Bunu düzeltmenin kolay bir yolu var mı? İşletim sistemini değiştirmek istemediğim için tüm kullanıcılar için değil, kullanıcılarım için düzeltmek istiyorum.


1
@AlexanderPoteriachin'in işaret ettiği gibi, filenamekendinizi yazarsanız ve dosyada iseniz filenametamamlayacak başka bir şey yoktur. Mesela sadece yazın filenve [TAB]çalışmıyor mu demek istiyorsun ?
mpy

Yanıtlar:


8

Tamamlamalarınızı özelleştirmek için en temel komutlar bash:

  • To sadece tam .shdosyaları sonra (G açılımı globbing ):

    complete -G '*.sh' sh

    Muhtemelen bu, (sistem çapında) yapılandırmanızın bir yerindedir. ( complete -prHangi tanımları yazdırdığını kontrol edebilirsiniz )

  • Sadece sayıdan sonra herhangi bir dosya adını tamamlamak içinsh

    complete -A file sh

    -Açok daha fazla olası işlem gerçekleştirir (burada: dosya ), lütfen daha fazla seçenek için completeyerleşikin açıklamasına göz atın man bashbuiltins.

Bu davranışın kalıcı olarak düzeltilmesi için, son komutu da kendinize koyun ~/.bashrc.


Komut ./kullanılmadığında mevcut yönetmen dosyalarının tamamlanmasını nasıl sağlayabilirim sh?
Vicky Dev

@VickyDev: Sorunuzun ne olduğunu tam olarak anlamadım, ancak yeni bir soruya daha uygun olacak gibi geliyor.
mpy

0

Hayır, özel bir şey olmalı. Herhangi bir Linux versiyonunda böyle bir şey görmedim. Sekme tamamlama beklendiği gibi çalışır.

Bu arada amaç ne?

$ sh filename<tab>

Yine de dizinde "dosya adı" varsa?

Belki bir dizinde iki benzer dosya adınız varsa sanki biraz kafanız karışır, bitirme işlemi sadece karakterler aynı olana kadar devam eder ve sonra mevcut tüm seçenekleri gösterir.

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.