PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kommandozeilen Parameter lang/kurz



devent
28.10.06, 17:11
Hallo
ich würde gerne wissen wieso und seit wann sich das eingebürgert hat lange Parameter mit -- anzufangen und kurze mit -.
z.B bei dir:


-a, --all
do not ignore entries starting with .

-A, --almost-all
do not list implied . and ..

--author
with -l, print the author of each file

-b, --escape
print octal escapes for nongraphic characters

Hat das irgendein Grund oder ist es einfach nur Tradition?

muell200
28.10.06, 17:51
Hat das irgendein Grund oder ist es einfach nur Tradition?

der grund ist:
woher will das programm wissen ob du die lange form verwendet oder 3 einzelen optionen

z.b.:
ls -beipsiel

ls -b -e -i -s -p -i -e -l

la --beispiel

verstanden?

BloodyBullet
28.10.06, 17:53
Tradition. Hat aber auch einen Hintergrund, es dient der klaren Trennung von Kuerzeln und Kurzworten. Ich meine, dass diese Syntax von GNU-Programmen ausgingen.
Wie du feststellen wirst, haelt sich nicht jeder dran - einfach weil's keine Pflicht ist.

devent
29.10.06, 12:58
der grund ist:
woher will das programm wissen ob du die lange form verwendet oder 3 einzelen optionen

z.b.:
ls -beipsiel

ls -b -e -i -s -p -i -e -l

la --beispiel

verstanden?
Eigentlich kann man das doch ganz gut unterscheiden. Ein Parameter wird mit - eingeleitet, die einzelnen Parameter sind durch ein Leerzeichen getrennt. Ich programmiere grade an einem Konsolenprogramm, deswegen würde ich gerne wissen was man gewohnt ist, welche Form der Parameter der Regel entspricht.

Mµ*e^13.5_?¿
29.10.06, 13:12
Nein, kann man nicht.
Bei gnu-Programmen ist es nämlich üblich, dass man Parameter gruppieren kann.
Also
"ls -b -e -s -p -i -e -l"
ist das gleiche wie
"ls -beispiel"
Die zwei striche sind also dazu da, um lange Optionen von mehreren kurzen Optionen unterscheiden zu können

devent
04.11.06, 02:01
Nein, kann man nicht.
Bei gnu-Programmen ist es nämlich üblich, dass man Parameter gruppieren kann.
Also
"ls -b -e -s -p -i -e -l"
ist das gleiche wie
"ls -beispiel"
Die zwei striche sind also dazu da, um lange Optionen von mehreren kurzen Optionen unterscheiden zu können
Das wusste ich nocht nicht. Thx :)

Ixot
04.11.06, 12:34
Ich programmiere grade an einem Konsolenprogramm, deswegen würde ich gerne wissen was man gewohnt ist, welche Form der Parameter der Regel entspricht.

Um dir das Leben einfacher zu machen, kannst du auch die Funktionen der glibc nutzen, zB. getopt_long().

Mehr dazu:
- http://www.delorie.com/gnu/docs/glibc/libc_527.html
- http://www.delorie.com/gnu/docs/glibc/libc_528.html
- man 3 getopt_long