option suivie d’une option dans getopt

J’ai un doute si nous avons deux options -a et –c et que l’option -a doit avoir une valeur et aucune valeur pour -c

maintenant, si je donne -> testopt -a -c [testopt est un programme]

alors mon programme prend -c comme valeur pour -a. Existe-t-il un moyen de s’assurer qu’une option avec valeur n’a pas d’autres options que ses valeurs?

le problème est que le système accepte – la valeur d’un mot-clé comme un autre mot-clé que je dois prévenir. par exemple – testopt -a -c. dans ce cas, il y avait un argument obligatoire (valeur) pour -a et aucune valeur pour -c .. mais mon getopt l’interprète comme “-c” est la valeur de “-a” getopt.

Vous obtenez -c comme valeur pour l’option -a car vous avez spécifié que -a doit avoir une valeur. Si vous appelez votre programme avec les options dans l’autre sens

 $ testopt -c -a 

alors getopt reviendra avec un '?' indiquant qu’une valeur d’option est manquante (comme getopt la page de manuel getopt ), et une erreur sera imprimée sur la console.

Malheureusement, il n’y a aucun moyen de dire à getopt qu’un argument a une valeur optionnelle, vous devez alors implémenter votre propre parsingur d’options.