En bash, vous pouvez utiliser !*
pour obtenir tous les arguments de la commande précédente. Par exemple, si vous le faisiez cp /some/path /some/other/path
et le faisiez ensuite mv !*
, la deuxième commande serait étendue à mv /some/path /some/other/path
.
Y a-t-il quelque chose comme ça qui peut être utilisé pour accéder à un argument spécifique à partir d'une commande au lieu de tous?
!:1
,!:2
. Après avoir utilisé la version avec les deux points, cela a fonctionné.!1:1
pointerait sur le premier argument de la première ligne?Personnellement, je n'aime vraiment pas cette fonctionnalité "expansion avec point d'exclamation" qui dérangera même si vous essayez
echo "Hello World!"
dans des shells interactifs (donc les scripts de sourcing qui supposent qu'ils seront exécutés en mode non interactif ne fonctionneront pas du tout).J'ai donc défini
set +o histexpand
et commencé à rappeler des arguments avec la méthode suivante:Notez que l'esc-astuce est dû au fait que je n'ai pas de méta-clé.
la source
echo 'Hello, orld!'
. Notez les guillemets simples au lieu des doubles.