[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: wie teste ich im bash skript ob * als kommandozeilen parameter uebergeben wurde?



Thorsten Haude <debian@thorstenhau.de> wrote:

> Moin,
>
> * Frank Küster wrote (2006-01-29 19:00):
>>Natürlich, aber wenn man "teststar * ENTER" eintippt, dann wird
>>"teststar" eben nicht mit * aufgerufen, sondern mit einer Liste, die die
>>die Shell generiert.  Und gefragt war ursprünglich, ob man testen kann,
>>ob das Skript mit * aufgerufen wurde.
>
> Wir können noch ein wenig lutig 'rumdiskutieren, wenn ich aber ein
> Skript mit * aufrufe, dann rufe ich es mit * auf, nicht mit einer
> Liste. Borghart hatte nicht gefragt, wie man erkennt, ob das Skript
> mit "*" aufgerufen wurde.

Dir ist klar, dass man Skripte auch auf andere Weise als aus der Shell
aufrufen kann? 

$ cat bin/testvar.pl
#!/usr/bin/perl
use strict;
use warnings;

my $arg="*";

system("testvar",$arg); # das testvar-Skript aus der vorletzten Mail 
                        # ist jetzt im Pfad
$ testvar.pl
called with star
$

Hier sind die Anführungszeichen nur dazu da, um Perl zu zeigen, dass es
sich um einen String handelt, in $arg wird dann nur der Inhalt, *,
gespeichert.  Das gleiche geht natürlich aus C-Programmen oder aus dem
Emacs oder aus Python-Skripten oder wasweissich.  

Daher ergibt die Aussage "Das Skript wurde mit dem Argument `*'
aufgerufen" durchaus Sinn, aber sie bedeutet etwas anderes als "Das
Skript wurde von der Shell mit einer Liste aufgerufen, die die Shell
nach der Eingabe `<scriptname> *' erzeugt hat".

Gruß, Frank
-- 
Frank Küster
Single Molecule Spectroscopy, Protein Folding @ Inst. f. Biochemie, Univ. Zürich
Debian Developer (teTeX)



Reply to: