[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