[linux-l] Re: Mac und Linux

Robert C. Helling r.helling at iu-bremen.de
Mi Aug 9 10:39:38 CEST 2006


On Tue, 8 Aug 2006, Rocco Rutte wrote:

> Eigentlich habe ich die Umsortierung so verstanden:
>
>  $ foo -a 1 -b 2 3 * -x
>
> wird zu:
>
>  -a 1
>  -b 2 3
>  -x
>  *
>
> weil die 1-3 gebunden sind (wenn man 2 Argumente für -b angibt).

Euch ist aber schon klar, dass der Stern nicht mehr beim Programm ankommt? 
Der wird schon von der shell durch die entsprechenden Directoryeintraege 
ersetzt. Enthaelt das pwd die drei Dateien foo, bar und foobar, ist argv 
fuer das Programm

["-a", "1", "-b", "2", "3", "foo", "bar", "foobar", "-x"]

und woher soll nun fuer das arme Prorgamm bzw getopt klar sein, dass 2 
und 3 zu b gehoeren die naechsten drei Argumente aber nicht, insbesondere, 
weil mich ja nichts davon abhaelt, auch noch Dateiein mit so Namen wie "4" 
oder "-c" zu erzeugen?

Mir scheint dieses Umsoprtieren nicht nuetzlich zu sein, sondern eher 
hinderlich, weil man eben die Information ueber die Reihenfolge verliert. 
Jetzt spekuliere ich mal: Die Sortierung sorgt einfach dafuer, dass alle 
Argumente, die mit Minuszeichen starten, nach vorne kommen, also aus dem 
obigen Beispiel

-a
-b
-x
1
2
3
foo
bar
foobar

wird. Will ich dem Switch -a noch den Wert 1 mitgeben muss ich sowas 
schreiben wie -a=1 und zwar ohne Space. Das bleibt dann natuerlich 
zusammen. Und mehr als ein Wert (wie oben 2 und 3 fuer -b) geht dann 
natuerllich nicht, oder ich muss sie irgendwie zusammenkleben als -b=2+3.

Und, weil ich immer alles wisse will, habe ich gleich mal in allen meinen 
Verzeichnissen eine Datei namens -l hingelegt. Wenn ich jetzt ls * mache, 
werde ich nun umfassend informiert ;-) Oder als Superdooperhackertrick 
mache ich
echo 1>'--version'
und schon listet ls * gar nix mehr und User Dorfnats kann diese Datei 
nicht mal mittels
rm --*
loeschen. Fieser Trick! Und wo wir dabei sind, legen wir gleich noch
echo 1>'-rf /*'
dazu. Aber keine Angst, das sieht nur boese aus, ist es aber nicht.

Viele Gruesse
Robert




-- 
.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oO
Robert C. Helling     School of Science and Engineering
                        International University Bremen
print "Just another   Phone: +49 421-200 3574
      stupid .sig\n";   http://www.atdotde.de


Mehr Informationen über die Mailingliste linux-l