Chciałbym napisać polecenie strukturalne w wielu wierszach jako
$ for i in *;
→ do
→ file $i;
→ done
bmdt.md: ASCII text
breakfast.md: ASCII text
brmdh.md: ASCII text
test.sh: Bourne-Again shell script text executable, ASCII text
ale znajdź kartę, która nie działa,
Jak mogę aktywować klawisz Tab w konsoli bash?
Odpowiedzi:
Kiedy naciśniesz Enterpo wprowadzeniu niekompletnego polecenia,
bash
powłoka wyświetli monit o kontynuację (dodatkowy monit$PS2
) i pozwoli ci wykonać wprowadzone polecenie. Funkcje edycji wiersza poleceń powłoki w tym punkcie są takie same jak w pierwotnym monicie (główny monit$PS1
), co oznacza, że Tabklawisz wykona polecenie i uzupełnienie nazwy pliku jak zwykle.Aby wstawić znak tabulacji, użyj Ctrl+V Tablub użyj spacji do wcięcia. Znaki tabulacji (lub dowolny inny literalny znak) można zawsze wstawić, jeśli poprzedzone są znakiem Ctrl+V.
Alternatywnie, jeśli w trybie edycji linii poleceń Emacsa (który moim zdaniem jest domyślny w
bash
), użyj, Ctrl+X Ctrl+Eaby wywołać edytor, w którym możesz wpisać swoje polecenie. Używany będzie edytor określony przezEDITOR
zmienną powłoki / środowiska lubemacs
jeśli ta zmienna nie jest ustawiona.W trybie edycji wiersza poleceń Vi naciśnij, Escape vaby zrobić to samo.
Polecenie zostanie wykonane po zapisaniu i zamknięciu edytora.
źródło
set -o vi
i który daje możliwość używania poleceń edycji Vi / Vim w wierszu poleceń, takich jak (Esc
),dw
aby usunąć do końca bieżącego słowa itp. Użyj,set -o emacs
aby wrócić do trybu edycji wiersza poleceń Emacsa.Ctrl+X
Ctrl+E
, powłoka otworzy ją dla ciebie.