Je pense que cela pourrait servir d'exemple plus simple de ce que vous voulez réaliser. Il n'est pas nécessaire d'utiliser des outils externes. Les outils intégrés à Bash peuvent faire le travail pour vous.
function DOSOMETHING {
while test $# -gt 0; do
case "$1" in
-first)
shift
first_argument=$1
shift
;;
-last)
shift
last_argument=$1
shift
;;
*)
echo "$1 is not a recognized flag!"
return 1;
;;
esac
done
echo "First argument : $first_argument";
echo "Last argument : $last_argument";
}
Cela vous permettra d'utiliser des drapeaux afin que, quel que soit l'ordre dans lequel vous passez les paramètres, vous obteniez le comportement approprié.
Exemple :
DOSOMETHING -last "Adios" -first "Hola"
Sortie :
First argument : Hola
Last argument : Adios
Vous pouvez ajouter cette fonction à votre profil ou la placer à l'intérieur d'un script.
Merci !
Edit : Enregistrez ce fichier et exécutez-le sous la forme suivante yourfile.sh -last "Adios" -first "Hola"
#!/bin/bash
while test $# -gt 0; do
case "$1" in
-first)
shift
first_argument=$1
shift
;;
-last)
shift
last_argument=$1
shift
;;
*)
echo "$1 is not a recognized flag!"
return 1;
;;
esac
done
echo "First argument : $first_argument";
echo "Last argument : $last_argument";
2 votes
Ce serait une bonne idée de demander/vérifier à unix.stackexchange.com également
13 votes
Cherchez sur Google "bash getopts" -- beaucoup de tutoriels.
139 votes
@glenn-jackman : Je vais certainement le googler maintenant que je connais le nom. Le truc avec Google, c'est que pour poser une question, il faut déjà connaître 50% de la réponse.
0 votes
Jetez un coup d'œil à BashFAQ#035