parameter nach dem unixstandart auswerten?

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Nano, 10.03.2009.

  1. Nano

    Nano Foren As

    Dabei seit:
    02.12.2006
    Beiträge:
    93
    Zustimmungen:
    0
    so lautet ein kleiner satz in einer großen aufgabe, allerdings ist mir nicht klar was der gute mann damit meint, was ist der unixstandart bei schaltern ?
    der syntax ist ja klar..
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 supersucker, 10.03.2009
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Ein '-' gefolgt von einem Buchstaben wie z.B. 'v' ist die Kurzschreibform, ein '--' gefolgt von etwas wie 'verbose' ist die Langschreibform.

    Viele Programme kannst du mit obigem Beispiel-Schalter aufrufen (verbose == langatmig, sprich viel Ausgabe).

    Also z.B. kannst du sowas schreiben wie

    Code:
    ./mein_tolles_programm -v
    oder halt in der Langvariante mit

    Code:
    ./mein_tolles_programm --verbose
    Logischerweise muss das Programm diese Schalter auch implementieren, 'irgendwas' kannst du natürlich nicht hinschreiben.
     
  4. Nano

    Nano Foren As

    Dabei seit:
    02.12.2006
    Beiträge:
    93
    Zustimmungen:
    0
    das ist mir soweit klar, das programm hate fix optionale parameter die ich beim starten entsprechend abfrage/teste... ich dachte vielleicht sei irgendwas zu besonderes zu beachten da der satz sonst keinen sinn macht
    aber danke für die antwort
     
  5. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Einen UNIX-Standard gibt es ziemlich sicher nicht, da es auch kein Standard-UNIX gibt. Vielleicht meint der Aufgabensteller POSIX-Standard. Das ist das, was supersucker beschrieben hat, naemlich dass nach einem Bindestrich auch nur ein Zeichen kommt, welches die Option spezifiziert.

    Es gibt noch viele andere Wege, Optionen zu uebergeben. So benutzt 'dd' gar keine Bindestriche sondern die Methode 'Schluessel=Wert' - siehe "man dd". Das soll wohl durch die Aufgabenstellung ausgeschlossen werden.
     
  6. codc

    codc /dev/null

    Dabei seit:
    12.01.2004
    Beiträge:
    607
    Zustimmungen:
    0
    weder ps,tar noch dd brauchen Bindestriche für Optionen. Bei ps produzieren die sogar eine Fehlermeldung.
    Code:
    :~$ ps -aux
    Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
    ..................
    
    Wohingegen:
    Code:
    :~$ ps aux
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.0   2100   692 ?        Ss   Mar10   0:02 init [2]
    root         2  0.0  0.0      0     0 ?        S<   Mar10   0:00 [kthreadd]
    root         3  0.0  0.0      0     0 ?        S<   Mar10   0:01 [migration/0]
    ......
    
    sauber läuft.
     
  7. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Falls Dein Beitrag eine Kritik sein soll, verstehe ich nicht, was Du aussagen moechtest. Nur, weil diese Programme Optionen ohne Bindestriche akzeptieren, heisst das doch nicht, dass sie dem POSIX-Standard genuegen. Oder fuehle ich mich zu Unrecht in meiner Ehre verletzt ;-)
     
  8. #7 bitmuncher, 11.03.2009
    Zuletzt bearbeitet: 11.03.2009
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Soweit ich weiss gibt es verschiedene "Unix-Standards" bei der Parameterübergabe an Programmen. Einmal den POSIX-Weg mit '-x' und '--xxx' und den SysV-Weg mit '-x', '--xxx' und 'x'. ps, tar und dd halten sich jedenfalls mit Sicherheit an den SysV-Standard.
     
  9. codc

    codc /dev/null

    Dabei seit:
    12.01.2004
    Beiträge:
    607
    Zustimmungen:
    0
    @rikola: Das war eine simple Feststellung einer Tatsache und keine Kritik. Dazu wäre ich viel zu müde zu dem Zeitpunkt gewesen.
    dd hat so einen etwas seltsamen Syntax von seiner Herkunft von IBM siehe http://www.catb.org/jargon/html/D/dd.html.
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. #9 saeckereier, 11.03.2009
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    a) Es heißt Standard und nicht Standart. Gerade bei diesen Standardrechtschreibfehlern kann ich nicht anders als darauf hinzuweisen.

    b) Probiert mal ps -ef ... (GNU ps zumindest, klar Unix ist das nicht. Auf den richtigen *nix geht das auch nicht, oder?)

    c) Selten dämliche Aufgabenstellung :-) Standard ist meiner Meinung nach nicht gerade die beste Wortwahl dafür.
     
  12. #10 Gott_in_schwarz, 11.03.2009
    Zuletzt bearbeitet: 11.03.2009
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    ps ist aber auch ein ziemlicher Sonderfall was "Parameter-Standards" angeht.
    @ps -aux:
    Steht gleich am Anfang der manpage:
    Code:
           This version of ps accepts several kinds of options:
           1   UNIX options, which may be grouped and must be preceded by a dash.
           2   BSD options, which may be grouped and must not be used with a dash.
           3   GNU long options, which are preceded by two dashes.
    [...]
           Note that "ps -aux" is distinct from "ps aux". The POSIX and UNIX standards require that "ps -aux"
           print all processes owned by a user named "x", as well as printing all processes that would be selected
           by the -a option. If the user named "x" does not exist, this ps may interpret the command as "ps aux"
           instead and print a warning. This behavior is intended to aid in transitioning old scripts and habits.
           It is fragile, subject to change, and thus should not be relied upon.
    
    Dem ersten Abschnitt nach wären "Standard Unix" Parameter wohl alle der Art "-a -b" "-ab" und dergleichen.
    Furthermore:
    Code:
    STANDARDS
           This ps conforms to:
    
           1   Version 2 of the Single Unix Specification
           2   The Open Group Technical Standard Base Specifications, Issue 6
           3   IEEE Std 1003.1, 2004 Edition
           4   X/Open System Interfaces Extension [UP XSI]
           5   ISO/IEC 9945:2003
    Aber ich find die Aufgabe nicht schlecht. Mal ein getopts.h zu schreiben kann sicherlich nicht schaden.

    edit: vonwegen getopts.h. Wir sind ja in shell-Skripte.
     
Thema:

parameter nach dem unixstandart auswerten?

Die Seite wird geladen...

parameter nach dem unixstandart auswerten? - Ähnliche Themen

  1. Nach Variable fragen wenn die nicht als Parameter eingegeben wurde

    Nach Variable fragen wenn die nicht als Parameter eingegeben wurde: Hallo, wie man aus dem Titel entnehmen kann, möchte ich dass man nach Argument gefragt wird, wenn man keinen eingetippt hat. zB ----------...
  2. [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

    [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter: Hallo zusammen, ich bin an einem Punkt angekommen, wo ich nicht mehr weiter komme und hoffe ihr könnt mir weiter helfen. Anbei ein Ausschnitt aus...
  3. Parameternutzung in Funktionen

    Parameternutzung in Funktionen: Hallo, vielleicht hat jemand eine Idee. Es sollen UNIX-Kommandos aus einer Funktion heraus aufgerufen werden, die Optionen werden mit...
  4. UseFBDev-parameter bei der xorg.conf

    UseFBDev-parameter bei der xorg.conf: hallo zusammen ich frage mich gerade, was der parameter "UseFBDev" genau bedeutet? tönt irgendwie selbsterklärend, ist es aber scheinbar nicht......
  5. Vergleich bei unterschiedlicher Schreibweise eines übergebenen Parameters

    Vergleich bei unterschiedlicher Schreibweise eines übergebenen Parameters: Hallo, ich bin unerfahren in der Script-Erstellung und suche für folgendes Problem eine Lösung: Als Aufrufparameter erwartet mein Script...