Anzeige:
Ergebnis 1 bis 11 von 11

Thema: bashscript und parameterübergabe

  1. #1
    Registrierter Benutzer
    Registriert seit
    08.01.2001
    Beiträge
    242

    Question bashscript und parameterübergabe

    Hi,

    ich habe da mal wieder eine Kleinigkeit.
    ein script soll einen Befehl via nice ausführen.
    Beispiel test.sh:

    Code:
    #!/bin/bash
    nice -n 19 $1
    ein Aufruf bringt aber das hier:

    Code:
    devil:/tmp # ./test.sh "ls -al > liste.out"  
    ls: >: No such file or directory
    ls: liste.out: No such file or directory
    nun hab ich schon alles mögliche versucht mit maskieren etc.
    komme aber nicht weiter.

    hat da jemand die zündende idee?


    der tom

  2. #2
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Tja man sollt doch schon vorher Prüfen was ankommt
    PHP-Code:
    if [ !-"$1" ] ; then
      
    echo "Usage `basename $0` <dir>"
      
    exit 1
    fi 
    PS: ls erwartet einen Parameter <verzeichnis>
    Geändert von undefined (24-01-2007 um 11:58 Uhr) Grund: nachtrag
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  3. #3
    Registrierter Benutzer
    Registriert seit
    08.01.2001
    Beiträge
    242

    Exclamation

    Zitat Zitat von undefined Beitrag anzeigen
    Tja man sollt doch schon vorher Prüfen was ankommt
    PS: ls erwartet einen Parameter <verzeichnis>
    hi,

    naja, auf der commandline aber nicht, dann macht er das ja und wenn ich
    das "ls -al" gegen ein "ps -ef" ersetze funnzt es auch nicht und das ps will nun garantiert kein directory als parameter, oder?

    ich denke mal das problem ist die umleitung in das file, das bringt ihn durcheinander.

    der tom

  4. #4
    Registrierter Benutzer
    Registriert seit
    20.09.2005
    Beiträge
    61
    Hallo Tom,

    hast Du schon mal "$1" statt $1 versucht ?
    Gruss zst

  5. #5
    Registrierter Benutzer
    Registriert seit
    08.01.2001
    Beiträge
    242

    Exclamation

    Zitat Zitat von zst Beitrag anzeigen
    Hallo Tom,

    hast Du schon mal "$1" statt $1 versucht ?
    Gruss zst
    hi,

    ja habe ich, dann kommt ein:
    ./test.sh "ls -al > liste.out"
    nice: ls -al > liste.out: No such file or directory

    ich werd noch wahnsinnig

    der tom

  6. #6
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    Blöde Frage: Existiert /bin/bash wirklich?
    Code:
    which bash
    Es gibt ja auch Systeme, auf denen keine Bash läuft

    Nächste blöde Frage: Kann es sein, dass sich dort evtl. ein Windows Zeilenumbruch eingeschlichen hat?

  7. #7
    Registrierter Benutzer
    Registriert seit
    08.01.2001
    Beiträge
    242
    Zitat Zitat von michael.sprick Beitrag anzeigen
    Blöde Frage: Existiert /bin/bash wirklich?
    Code:
    which bash
    Es gibt ja auch Systeme, auf denen keine Bash läuft

    Nächste blöde Frage: Kann es sein, dass sich dort evtl. ein Windows Zeilenumbruch eingeschlichen hat?
    zum bash thema:
    Code:
    devil:~ # which bash
    /bin/bash
    und was den zeilenumbruch angeht, selbst wenn ichs vollkommen neu
    mit dem vi schreibe, hab ich den gleichen effekt.

    problem ist einfach das ">" zeichen, das bringt die bash irgendwie aus dem tritt.

    der tom
    Geändert von meinereinerseiner (25-01-2007 um 20:52 Uhr)

  8. #8
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von meinereinerseiner Beitrag anzeigen
    ja habe ich, dann kommt ein:
    ./test.sh "ls -al > liste.out"
    nice: ls -al > liste.out: No such file or directory
    und wenn Du es so versuchst:
    Code:
    ./test.sh "ls -al" > liste.out
    ?
    Zitat Zitat von meinereinerseiner Beitrag anzeigen
    ich werd noch wahnsinnig
    immer mit der Ruhe
    MfG,
    Rainer
    There's nothing a good whack with a hammer won't fix!

  9. #9
    Registrierter Benutzer
    Registriert seit
    08.01.2001
    Beiträge
    242
    Zitat Zitat von rais Beitrag anzeigen
    Moin moin,
    und wenn Du es so versuchst:
    Code:
    ./test.sh "ls -al" > liste.out
    ?

    moin,

    js das geht, das wusste ich aber auch schon vorher - ist aber nicht so gewollt.

    der tom

  10. #10
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    folgendes funktioniert bei mir:

    Code:
    #!/bin/bash
    
    echo "Auszufuehrendes Kommando: $1"
    eval nice -n 19 $1
    Ich komm allerdings noch nicht so ganz drauf, warum es ohne eval nicht geht...

  11. #11
    Registrierter Benutzer
    Registriert seit
    08.01.2001
    Beiträge
    242
    Zitat Zitat von michael.sprick Beitrag anzeigen
    folgendes funktioniert bei mir:

    Code:
    #!/bin/bash
    
    echo "Auszufuehrendes Kommando: $1"
    eval nice -n 19 $1
    Ich komm allerdings noch nicht so ganz drauf, warum es ohne eval nicht geht...
    klasse - klappt!

    tausend dank
    der tom

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •