Existe uma maneira no Bash de recuperar o argumento do comando anterior?
Eu costumo fazer vi file.cseguido por gcc file.c.
Existe uma maneira no Bash de recuperar o argumento do comando anterior?
Existe uma maneira no Bash de recuperar o argumento do comando anterior?
Eu costumo fazer vi file.cseguido por gcc file.c.
Existe uma maneira no Bash de recuperar o argumento do comando anterior?
Respostas:
Você pode usar $_ou !$para recuperar o último argumento do comando anterior.
Também Alt + .pode ser usado para recuperar o último argumento de qualquer um dos comandos anteriores.
!!:1, !!:2etc. ( !!:0é o próprio comando anterior.) Veja gnu.org/software/bash/manual/bashref.html#History-Interaction
!$, você usa !^para o primeiro argumento.
echo tiger rabbit, como posso me referir tigerno seguinte comando?
Alt + .não funciona no modo vi. Apenas para sua informação, para outros que estavam confusos aqui.
Se o comando anterior tiver dois argumentos, como este
ls a.txt b.txt
e você queria o primeiro, você poderia digitar
!:1
dando
a.txt
Ou, se você quisesse os dois, poderia digitar
!:1-2
dando
a.txt b.txt
Você pode estender isso para qualquer número de argumentos, por exemplo:
!:10-12
-bash: :1-2: bad word specifier
ls a.txtlinha 2ll !:1-2
!:^-$pode ser usado ou, claro, código semelhante em combinação com números.
!!:nonde né a posição baseada em 0 do argumento que você deseja.
Por exemplo:
echo 'one' 'two'
# "one two"
echo !!:2
# "two"
O !prefixo é usado para acessar comandos anteriores.
Outros comandos úteis:
!$ - último argumento do comando anterior!^ - primeiro argumento (após o programa / built-in / script) do comando anterior!! - comando anterior (frequentemente pronunciado "bang bang")!n- número nde comando dehistory!pattern - correspondência de comando mais recente pattern!!:s/find/replace- último comando, substitua findporreplace!!:s/find/replace, você também pode ^find^replace.
!* - todos os argumentos do comando anterior (após o programa / built-in / script). por exemplo: ls *.tmp *.cache rm !*
Na linha de comando, você pode pressionar esc- .ou alt+.
Ele percorre o último argumento dos seus comandos anteriores.
↑e ↓para trabalhar também.
Se você souber o número fornecido no histórico de um comando específico, poderá usar qualquer argumento nesse comando usando os seguintes termos.
Use following para pegar o segundo argumento do terceiro comando no histórico,
!3:2
Use following para pegar o terceiro argumento do quinto último comando do histórico,
!-5:3
Usando um sinal de menos, você pede que ele passe do último comando da história.
! * executa um novo comando com todos os argumentos anteriores.
ls /tmp
cd !*
#you are now in /tmp
$_.
Sim, você pode usar !$para recuperar o último argumento do comando anterior.