#1 Le 16/06/2009, à 14:52
- MrAzerty
[Résolu] Passer un nombre négatif en parametre de perl
Bonjour à tous,
Pour les besoins de mon script ksh, je dois créer une commande qui renvoie la valeur absolue du nombre passé en paramètre. J'ai opté pour du perl, ce qui donne:
perl -e 'print(abs($ARGV[0]),"\n")' '-20' #Pour calculer la valeur absolue de -20.
problème: tout nombre négatif est interprété comme un paramètre de la commande appelée.
Ma commande retourne donc:
Unrecognized switch: -20 (-h will show valid options).
Je me retrouve donc avec une commande qui calcule bien les valeurs absolues, mais des nombres positifs uniquement...
Existe-t-il une façon de spécifier le fait que mon paramètre est un paramètre de mon programme perl et non pas de la commande perl elle-même?
PS: Là je travaille sous AIX mais je pense que c'est la même chose pour tous les ksh quelque soit l'OS.
Dernière modification par MrAzerty (Le 16/06/2009, à 15:13)
On est toujours le geek de quelqu'un.
Hors ligne
#2 Le 16/06/2009, à 15:12
- MrAzerty
Re : [Résolu] Passer un nombre négatif en parametre de perl
Résolu.
Il faut glisser "--" entre les parametre de la commande (perl) et ceux du programme perl.
Exemple:
perl -e 'print(abs($ARGV[0]),"\n")' -- -20
20
Et ça peut surement s'appliquer à d'autres commandes!
EDIT: Oui, ca doit être une convention, exemple:
$ touch -1
touch: Not a recognized flag: 1
Usage: touch [-amcf] [mmddhhmm[yy]] [-t [[CC]YY]MMDDhhmm[.SS]]
[-r ref_file] File ...
$ touch -- -1
$ ls -1
-1
Dernière modification par MrAzerty (Le 16/06/2009, à 15:24)
On est toujours le geek de quelqu'un.
Hors ligne