Jeśli w katalogu mam następujące pliki:
$ ls
a-file-1
b-file-2
something-else
I piszę
$ cat *file*<TAB>
Linia niespodziewanie aktualizuje się
$ cat a-file-1 |
(potok oznacza kursor), chociaż glob również pasuje b-file-2
. Trochę dziwniejsze jest to, że jeśli uruchomię inną powłokę, zamiast tego otrzymam listę meczów na podwójnej PATKA (które wolę):
$ cat *file*<TAB><TAB>
a-file-1 b-file-2
$ cat *file*|
P: Jak skonfigurowano to zachowanie? Chciałbym mieć drugie zachowanie w powłoce logowania.
Wygląda na to, że powłoki powłoki uzyskują pierwsze zachowanie, a powłoki inne niż logowania uzyskują drugie. Jednak mój ~/.bash_profile
robi niewiele więcej niż rozpoczęcie ~/.bashrc
. (Nie mam .profile
.) Wydaje się, że w jakiś sposób muszę zmienić konfigurację.
The shopt
różnice są takie, że tylko powłoka logowania ma extglob on
, hostcomplete off
, i login_shell on
ale ich zmiana nie zmienia powyższego zachowania. set -o
wyjście jest takie samo. Wypróbowany set show-all-if-ambiguous on
ale to nie miało żadnego skutku. Używam Ubuntu 14.04.1.
Aktualizacja Jeżeli chodzi o komentarz @mpy .
W powłoce niezalogowanej, gdy dołączam do globu katalog podstawowy i wciskam Alt-G, zachowanie jest inne niż gdy używam PATKA PATKA . To właśnie to ostatnie zachowanie chcę skonfigurować w powłoce logowania.
Alt - sol :
$ ls dir/*file*<Alt-G>
aktualizacje do
$ ls dir/|
usuwanie globu i nie drukowanie żadnych dopasowań. Natomiast PATKA PATKA wyświetla mecze
$ ls dir/*file*<TAB><TAB>
a-file-1 b-file-2
$ ls dir/*file*|
bind -P
wyjście z obu muszli jest identyczne. Również zachowanie glob-complete-word
jest trochę inny niż to, co widzę w powłoce bez logowania za pomocą TAB-TAB. Zaktualizowałem swoją odpowiedź, aby wyjaśnić.
bind -P
). Mogę odtworzyć zachowanie Twojej powłoki logowania. Ale używającAlt-G
(glob-complete-word
) zamiastTAB
(complete
) Dostaję drugie zachowanie.