Salut,
Un complément s’impose … 
quote=“Bash”
Réutilisation de commandes avec substitution
Pour ré-exécuter la commande précédente en changeant quelques paramètres, utilisez l’history expansion de Bash :
shell:~$ !!:gs/ancienparamètre/nouveauparamètre/
L’history expansion de Bash est très puissante, et la section du man qui la documente est à cette image : copieuse. Pour la petite histoire, !! signifie qu’on réfère à la ligne d’historique précédente — c’est à dire, la ligne de commande exécutée juste avant —, :g signifie qu’on applique la substitution à toute la ligne de commande (par défaut, seul la première occurrence est substituée) et enfin le mondialement connu s/foo/bar/ qui demande la substitution de “foo” par “bar”.
Réutiliser certains paramètres de lignes de commande antérieures
Dans le même registre que l’astuce précédente il est possible de réutiliser uniquement certains paramètres de commandes précédemment exécutées, toujours grâce à la fonctionnalité d’history expansion. ‘‘Démonstration attention’’ :
shell:~$ mkdir a b c d
shell:~$ rmdir !:2-3 <= on réutilise uniquement le 2ème et 3ème paramètre de la commande précédente, soit “b” et "c"
rmdir b c
shell:~$ ls
a d
shell:~$
Là encore, je vous renvoie vers le man de Bash, section “HISTORY EXPANSION” pour une référence exhaustive de la syntaxe.
Logger (élégamment) les messages d’erreur d’un script Bash
Bien qu’il soit possible de rediriger les messages d’erreur au moment de l’exécution d’un script (du genre script.sh 2>erreurs.log par exemple), il est possible de faire cela plus proprement depuis le script :
#!/bin/bash
exec 3>/tmp/monscript-erreurs.log
exec 2>&3
…
exit 0
Basiquement, on déclare un descripteur de fichier supplémentaire qui pointe vers un fichier /tmp/monscript-erreurs.log et on redirige la sortie STDERR vers ce nouveau descripteur.
(…)
[/quote]