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?
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.
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
!!:n
où n
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
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.
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.
Oui, vous pouvez utiliser !$
pour rappeler le dernier argument de la commande précédente.
! * exécute une nouvelle commande avec tous les arguments précédents.
ls /tmp
cd !*
#you are now in /tmp