Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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