Script shell

Melo96 -  
jisisv Messages postés 3678 Statut Modérateur -
Bonjour chers amis
J'ai un problème par rapport à mon devoir de maison à rendre samedi
Je voulais savoir quand je passe une option en paramètres dans un script est ce qu'il y a une fonction en bash qui me permet de savoir si le
Paramètre est une option ou un argument simple.
Exemple:
Nomscript -a -b -c Bonjour bonsoir
La fonction me dira -abc sont des options et bonjour bonsoir sont des arguments simple.
Si une telle fonction existe pardonner donnée moi la syntaxe.


La deuxième idée que j'ai eu c'est de pouvoir extraire la première lettre et de comparé à + ou - et dire si c'est une option ou pas.
Si ces possibles d'extraire une lettre comment procéder.


Merci d'avance
A voir également:

3 réponses

zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Salut,

Le plus simple pour toi serait de faire une boucle sur chaque paramètre (aide-toi de cette FAQ) et de tester le début de chaque chaîne.
0
jisisv Messages postés 3678 Statut Modérateur 934
 
Par exemple
johand@bata:~$ truc=-a
johand@bata:~$ if [ X"${truc}" != X"${truc#-}" ] ; then echo "Option!" ; fi
Option!
johand@bata:~$ truc=a
johand@bata:~$ if [ X"${truc}" != X"${truc#-}" ] ; then echo "Option!" ; fi
johand@bata:~$


Notons qu'une pratique habituelle est la possibilité de terminer les options avec un paramètre "--". Les arguments suivants seront alors des
parametres non option.
Le parseur devra évidemment déterminer si une option nécessite elle-même un paramètre afin de lever toute ambiguïté.
exemple :
 ma_commande -a -b -p /home -- p1 p2 -a 

Le premier "-a" est une option, le second est un paramètre simple.
0
Utilisateur anonyme
 
Des gens ont école en Août ?
-1
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Le net est universel et ccm ne s'arrête pas aux frontières françaises ;-)
0