Semelhante a !$, você usa !^para o primeiro argumento.
Will
13
ahh ... * nix ... você é uma coisa de beleza ... todo dia eu te amo mais
jx12345
Como podemos nos referir ao penúltimo argumento do comando anterior? por exemplo, se eu dei echo tiger rabbit, como posso me referir tigerno seguinte comando?
Chan Kim
3
Alt + .não funciona no modo vi. Apenas para sua informação, para outros que estavam confusos aqui.
Brian McCutchon
160
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:
@RNA, tentei novamente para garantir que não incluísse um erro de digitação. Você poderia fornecer um pouco mais de detalhes (por exemplo: linha de comando do ubuntu, cygwin para windows? Mensagem de erro? Linha anterior?)
Robert Gowland
Estou usando o GNU bash, versão 3.2.51 (1) -release (x86_64-apple-darwin13) Copyright (C) 2007 Free Software Foundation, Inc. A mensagem de erro é-bash: :1-2: bad word specifier
RNA
2
Eu recebo a mesma coisa se não houvesse dois argumentos na linha anterior. Por exemplo. linha 1 ls a.txtlinha 2ll !:1-2
Robert Gowland 15/02
você está certo. Esse é um erro estúpido que cometi. obrigado!
RNA
Também para obter todos os argumentos, !:^-$pode ser usado ou, claro, código semelhante em combinação com números.
816-8055 26/06
88
!!: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
Eu sempre achei as chaves ↑e ↓para trabalhar também.
Bucket
Chaves @Bucket ir embora comandos anteriores, enquanto que a solução fornecida por Antonio permite passar pelos argumentos anteriores (último argumento de cada comando anterior apenas)
everyonesdesign
30
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.
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.fonte
!!:1
,!!:2
etc. (!!: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 referirtiger
no 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
e você queria o primeiro, você poderia digitar
dando
Ou, se você quisesse os dois, poderia digitar
dando
Você pode estender isso para qualquer número de argumentos, por exemplo:
fonte
-bash: :1-2: bad word specifier
ls a.txt
linha 2ll !:1-2
!:^-$
pode ser usado ou, claro, código semelhante em combinação com números.!!:n
onden
é a posição baseada em 0 do argumento que você deseja.Por exemplo:
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úmeron
de comando dehistory
!pattern
- correspondência de comando mais recentepattern
!!:s/find/replace
- último comando, substituafind
porreplace
Mais informações sobre o histórico de comandos
fonte
!!: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.
fonte
↑
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.
fonte
! * executa um novo comando com todos os argumentos anteriores.
fonte
$_
.Sim, você pode usar
!$
para recuperar o último argumento do comando anterior.fonte