PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kommandozeilen-Parameter



f0rtex
08-01-2002, 09:10
Hi folks!

Ich bin ein totaler Beginner in Sachen Perl.
Mein Problem besteht darin, dass ich ein paar Parameter an mein Script übergeben möchte.



f0rtex$ myscript -s foo -r bar -m hier soll eine message folgen


Um dies zu erreichen habe ich folgendes versucht:



use Getopt::Std;
getopts('s:r:m');
$sender = $opt_s;
$recipient = $opt_r;
$message = $opt_m;


Nun, wenn ich jetzt den Inhalt der Variablen $sender, $ recipient und
$message mittels "print" ausgebe, steht für $sender = foo, für $recipient = bar und für $message = 1.

Wieso hat die Variable $message nicht den wert "hier soll eine message folgen" ?

Was mach ich falsch?

Danke für's Zulesen :-D
f0rtex

elrond
08-01-2002, 11:26
dir kommandozeilenparameter stehen in $_[0],$_[1] usw.

lolli
08-01-2002, 12:46
ich habs aber verstanden ;)

wenn du wortgruppen als parameter übergibst, musst du glaub ich diese in ' oder " einschliessen....

f0rtex$ myscript -s foo -r bar -m 'hier soll eine message folgen'


oliver

f0rtex
09-01-2002, 11:03
@lolli
Hab ich auch schon versucht...
Der Inhalt von $message ist aber immer noch 1 :-(

greets
f0rtex

lolli
09-01-2002, 11:32
versuche mal
getopts("srm");

f0rtex$ myscript -s foo -r bar -m "hier soll eine message folgen"

unter freebsd und auch unter win hats funktioniert


oliver

sticky bit
09-01-2002, 16:50
Schau die mal den Inhalt von @ARGV an... ;)

deac
09-01-2002, 17:10
das sollte so heißen:
getopts ("s:r:m:");

ich kann zwar kein perl, aber das weiß sogar ich.

f0rtex
10-01-2002, 10:59
yepp! Der Doppelpunkt am Schluss fehlte.
wenn kein Doppelpunkt angegeben wird, wird es als
boolean Varible interpretiert.

Dank euch Leut

greets
f0rtex

lolli
10-01-2002, 11:04
ja, aber die variable $opt_xyz beinhaltete dennoch die zeichenkette!!!! trotz "boolscher formate"

oliver

f0rtex
10-01-2002, 11:31
@oliver
Das ist bei mir leider nicht der Fall :-(
sobald ich den Doppelpunkt am Schluss auslasse, wird mir nur eine 1 ausgegeben (print $opt_m; ).
Woran das liegt, weiss ich nicht.

Laut getopt.pm, muss es nur als boolean interpretiert werden.
(was bei mir ja auch der Fall ist)

f0rtex

lolli
10-01-2002, 12:03
ich weiss :), steht ja auch so in der man Getopt::Std drin. der letzte versuch war aber unter win....mit activestate-perl....lag vielleicht daran..


oliver