web-dev-qa-db-fra.com

Comment puis-je rappeler l'argument de la commande bash précédente?

Y at-il un moyen dans Bash de rappeler l’argument de la commande précédente?

Je fais habituellement vi file.c suivi de gcc file.c.

Y at-il un moyen dans Bash de rappeler l’argument de la commande précédente?

269
The Coder

Vous pouvez utiliser $_ ou !$ pour rappeler le dernier argument de la commande précédente.

De plus, Alt + . peut être utilisé pour rappeler le dernier argument de l'une des commandes précédentes.

492
codaddict

Si la commande précédente avait deux arguments, comme ceci

ls a.txt b.txt

et vous vouliez le premier, vous pouvez taper

!:1

donnant

a.txt

Ou si vous vouliez les deux, vous pouvez taper

!:1-2

donnant

a.txt b.txt

Vous pouvez l'étendre à un nombre quelconque d'arguments, par exemple:

!:10-12
145
Robert Gowland

!!:nn est la position 0 de l'argument que vous souhaitez.

Par exemple:

echo 'one' 'two'
# "one two"

echo !!:2
# "two"

Le préfixe ! est utilisé pour accéder aux commandes précédentes.

Autres commandes utiles:

  • !$ - dernier argument de la commande précédente
  • !^ - premier argument (après le programme/intégré/script) de la commande précédente
  • !! - commande précédente (souvent prononcé "bang bang")
  • !n - numéro de commande n de history
  • !pattern - La dernière commande correspondant à pattern
  • !!:s/find/replace - Dernière commande, remplacez find par replace

Plus d'infos sur l'historique des commandes

72
Johntron

Dans la ligne de commande, vous pouvez appuyer sur esc-. ou alt+.

Il fait défiler les arguments précédents que vous avez utilisés.

60
Antonio Mano

Si vous connaissez le numéro donné dans l'historique pour une commande particulière, vous pouvez utiliser n'importe quel argument de cette commande en utilisant les termes suivants.

Utilisez suivant pour prendre le deuxième argument de la troisième commande de l'historique,

!3:2

Utilisez suivant pour prendre le troisième argument de la cinquième dernière commande de l'historique,

!-5:3

À l'aide d'un signe moins, vous lui demandez de parcourir à partir de la dernière commande de l'historique.

28
Madisz

Oui, vous pouvez utiliser !$ pour rappeler le dernier argument de la commande précédente.

15
Justin Ethier

! * exécute une nouvelle commande avec tous les arguments précédents.

ls /tmp
cd !*
#you are now in /tmp
15
user6768257