Disons que j'ai une commande bash avec quelques options et la variable qui m'intéresse (par exemple, nom de fichier):
my_cmd option1 option2 filename
J'ai créé un alias:
alias my_cmd_12="my_cmd option1 option2"
Cela me permet de supprimer toutes les options en tapant. Cependant, il y a des drapeaux venant après la variable qui m'intéresse (par exemple, nom de fichier):
my_cmd option1 option2 filename --flag1
Comment créer un alias qui prend toutes les options et tous les drapeaux:
my_alias filename
est équivalent à
my_cmd option1 option2 filename --flag1
linux
command-line
bash
motam79
la source
la source
Réponses:
Vous ne pouvez pas faire cela avec un alias. Alias fonctionne en remplaçant chaîne par une autre chaîne. Avec cet alias défini
my_cmd_12 filename --flag1
va s'étendre àMais vous voulez invoquer
my_alias filename
pour obtenir le même résultat. Il n'y a aucun moyen de remplacermy_alias
avec une autre corde si--flag1
apparaît à la fin .Cependant, une fonction devrait fonctionner:
Notez qu'il ne s'agit que d'une solution minimale adaptée à votre exemple. En général, vous pouvez utiliser plus de paramètres de position ou
"$@"
, instructions conditionnelles, etc., selon vos besoins. Les fonctions sont beaucoup plus souples que les alias.Plus d'informations ici: Dans Bash, quand alias, quand écrire un script et quand écrire une fonction?
la source