Często uruchamiam polecenia za pomocą podpowłoki, a czasem chciałbym rozszerzyć podpowłoki, zanim coś uruchomię. W ten sposób mogę zweryfikować to, co robię, i ewentualnie edytować to, co się wkrótce wydarzy.
Na przykład, jak mogę uzyskać rozwinięcie następującego wiersza polecenia, zanim go uruchomię, aby móc edytować wyniki podpowłoki?
na przykład
$ find -name "test.txt"
/tmp/test.txt
$ mv $(!!) /tmp/new.txt
Chciałbym zobaczyć rozwinięcie podpowłoki przed uruchomieniem polecenia:
$ mv /tmp/test.txt /tmp/new.txt
Czy jest jakiś sposób, aby to zrobić?
bash
shell
command-history
subshell
Brad Parks
źródło
źródło
zsh
i jest świetnie i robi to, jak sugerujesz ... fajna wskazówka! Oryginalną odpowiedź zostawiam tutaj, ponieważ było tobash
pytanie.Odpowiedzi:
shell-expand-line
(\e\C-e
) rozwija podstawienia poleceń w bash.$(!!)\e\C-e
ponownie uruchomiłby poprzednie polecenie i wstawił dane wyjściowe:Rozszerza także inne podstawienia poleceń, ale nie ma takich poleceń
shell-expand-word
.W wersji bash 4.0 lub nowszej możesz także włączyć
globstar
, wpisać**/file.txt
i użyćglob-complete-word
(\eg
) lubglob-expand-word
(\C-x*
).źródło
Oto przydatna sztuczka - dodaj ten wiersz do ~ / .inputrc (w razie potrzeby utwórz plik):
Pamiętaj, że możesz również jedno z poniższych, aby rozwinąć tylko historię, swoje aliasy lub jedno i drugie:
lub
lub
Zostało to zebrane z tego bloga i tego pytania na temat SuperUser , które jest bardzo podobne:
źródło