Jak odwołać się do przedostatniego argumentu poprzedniego polecenia? na przykład, jeśli dałem echo tiger rabbit, jak mogę odwołać tigersię do następującego polecenia?
Chan Kim
3
Alt + .nie działa w trybie vi. Tylko do waszej informacji, dla innych, którzy byli tutaj zdezorientowani.
Brian McCutchon
160
Jeśli poprzednie polecenie zawierało dwa argumenty, to tak
ls a.txt b.txt
i chciałeś pierwszego, możesz pisać
!:1
dający
a.txt
Lub jeśli chcesz jedno i drugie, możesz wpisać
!:1-2
dający
a.txt b.txt
Możesz to rozszerzyć na dowolną liczbę argumentów, np .:
@ RNA, po prostu spróbowałem jeszcze raz, aby upewnić się, że nie uwzględniłem literówki, czy możesz podać trochę więcej szczegółów (np. Linia poleceń ubuntu, cygwin dla systemu Windows? Komunikat o błędzie? Poprzednia linia?)
Robert Gowland
Używam GNU bash, wersja 3.2.51 (1) -release (x86_64-apple-darwin13) Copyright (C) 2007 Free Software Foundation, Inc. Komunikat o błędzie to-bash: :1-2: bad word specifier
RNA
2
Otrzymuję to samo, jeśli w poprzednim wierszu nie było dwóch argumentów. Na przykład. linia 1 ls a.txtlinia 2ll !:1-2
Robert Gowland
masz rację. To głupi błąd, który popełniłem. dzięki!
RNA
Również, aby uzyskać wszystkie argumenty, !:^-$można użyć lub oczywiście podobny kod w połączeniu z liczbami.
816-8055
88
!!:ngdzie njest pozycją argumentu zależną od 0.
Na przykład:
echo 'one''two'# "one two"
echo !!:2# "two"
!Prefiks jest używany do dostępu do poprzednich poleceń.
Inne przydatne polecenia:
!$ - ostatni argument z poprzedniego polecenia
!^ - pierwszy argument (po programie / wbudowanym / skrypcie) z poprzedniego polecenia
@Bucket klucze przechodzą przez poprzednie polecenia, podczas gdy rozwiązanie dostarczone przez Antonio pozwala przejść przez poprzednie argumenty (tylko ostatni argument każdego poprzedniego polecenia)
everyonesdesign
30
Jeśli znasz liczbę podaną w historii dla konkretnego polecenia, możesz praktycznie wziąć dowolny argument w tym poleceniu, używając następujących terminów.
Użyj następującego, aby pobrać drugi argument z trzeciego polecenia w historii,
!3:2
Użyj następującego, aby pobrać trzeci argument z piątego ostatniego polecenia w historii,
!-5:3
Używając znaku minus, poprosisz go o przejście od ostatniego polecenia historii.
Odpowiedzi:
Możesz użyć
$_
lub,!$
aby przywołać ostatni argument poprzedniego polecenia.Również
Alt + .
można stosować przypomnieć ostatni argument któregokolwiek z poprzednich poleceń.źródło
!!:1
,!!:2
itp (!!:0
jest poprzedni samo polecenie.) See gnu.org/software/bash/manual/bashref.html#History-Interaction!$
, należy użyć!^
dla pierwszego argumentu.echo tiger rabbit
, jak mogę odwołaćtiger
się do następującego polecenia?Alt + .
nie działa w trybie vi. Tylko do waszej informacji, dla innych, którzy byli tutaj zdezorientowani.Jeśli poprzednie polecenie zawierało dwa argumenty, to tak
i chciałeś pierwszego, możesz pisać
dający
Lub jeśli chcesz jedno i drugie, możesz wpisać
dający
Możesz to rozszerzyć na dowolną liczbę argumentów, np .:
źródło
-bash: :1-2: bad word specifier
ls a.txt
linia 2ll !:1-2
!:^-$
można użyć lub oczywiście podobny kod w połączeniu z liczbami.!!:n
gdzien
jest pozycją argumentu zależną od 0.Na przykład:
!
Prefiks jest używany do dostępu do poprzednich poleceń.Inne przydatne polecenia:
!$
- ostatni argument z poprzedniego polecenia!^
- pierwszy argument (po programie / wbudowanym / skrypcie) z poprzedniego polecenia!!
- poprzednie polecenie (często wymawiane „bang bang”)!n
- numer polecenian
zhistory
!pattern
- najnowsze dopasowanie poleceńpattern
!!:s/find/replace
- ostatnie polecenie, substytutfind
zreplace
Więcej informacji na temat historii poleceń
źródło
!!:s/find/replace
możesz również^find^replace
.!*
- wszystkie argumenty z poprzedniego polecenia (po programie / wbudowanym / skrypcie). np .:ls *.tmp *.cache rm !*
W wierszu poleceń możesz nacisnąć esc- .lub alt+.
Przechodzi między ostatnim argumentem poprzednich poleceń.
źródło
↑
i↓
do pracy.Jeśli znasz liczbę podaną w historii dla konkretnego polecenia, możesz praktycznie wziąć dowolny argument w tym poleceniu, używając następujących terminów.
Użyj następującego, aby pobrać drugi argument z trzeciego polecenia w historii,
!3:2
Użyj następującego, aby pobrać trzeci argument z piątego ostatniego polecenia w historii,
!-5:3
Używając znaku minus, poprosisz go o przejście od ostatniego polecenia historii.
źródło
! * uruchamia nowe polecenie ze wszystkimi poprzednimi argumentami.
źródło
$_
zamiast tego użyć .Tak, możesz użyć
!$
do przywołania ostatniego argumentu poprzedniego polecenia.źródło