Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Script mit Parameter vom at job starten

  1. #1
    Registrierter Benutzer
    Registriert seit
    20.10.2000
    Beiträge
    78

    Script mit Parameter vom at job starten

    Hallo,
    ich versuche bei einem at Job einen Parameter an das Skript mitzugeben.

    at -f /home/eins/test.sh now # Ohne Parameter wird der Job ausgeführt

    at -f /home/eins/test.sh test now
    syntax error. Last token seen: t

    Ich habe es mit diversen Anführungszeichen probiert, komme aber nicht dahinter.

    Für Tipps bin ich dankbar

    Gruß, zagadka

  2. #2
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    Zitat Zitat von man at
    -f file Reads the job from file rather than standard input.
    also müsstest du eine Datei mit dem Inhalt
    Code:
    /home/eins/test.sh test
    erstellen und diese mit
    Code:
    at -f /home/eins/die_datei now
    aufrufen.
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

  3. #3
    Registrierter Benutzer
    Registriert seit
    20.10.2000
    Beiträge
    78
    Hi jeebee,

    das ist das Problem. Ich möchte von vielen Skripten (>10), die sich immer nur in einem Parameter unterscheiden auf ein Skript runterkommen. Und diesen Parameter möchte ich an das einzige Skript übergeben.

    Das Skript selbst soll/muss von at gestartet werden.

    Gruß, zagadka

  4. #4
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Zitat Zitat von zagadka Beitrag anzeigen
    ...
    Ich möchte von vielen Skripten (>10), die sich immer nur in einem Parameter unterscheiden auf ein Skript runterkommen. Und diesen Parameter möchte ich an das einzige Skript übergeben.
    ...
    at akzeptiert keine Parameter. Zumindest habe ich in der man-Page keinen Weg gefunden.

    Der folgende Trick ist vielleicht nicht allzu elegant, sollte aber Dein Problem lösen (nicht ausgetestet):
    1. Du legst für jeden möglichen Parameter einen Link an:
    Code:
    for p in par1 par2 par3; do
    ln /home/eins/test.sh "/home/eins/test ${p}.sh"
    done
    Damit hast Du in /home/eins für jeden möglichen Aufrufparameter ein eigenes Script (mit einem Leerzeichen im Namen), also in diesem Beispiel:
    /home/eins/test.sh # das Original
    /home/eins/test par1.sh
    /home/eins/test par2.sh
    /home/eins/test par3.sh

    2. Im Shell-Script test.sh extrahierst Du aus Deinem Scriptnamen den Parameter:
    Code:
    # aus dem Scriptnamen den Parameter extrahieren
    PAR=`basename "$0" .sh | cut -f2 -d" "`
    3. Jetzt kannst Du im Script mit $PAR arbeiten

    4. Deine at-Jobs startest Du mit:
    at -f "/home/eins/test par1.sh" now

    Das Schöne daran ist, dass die Links keinen Platz verbrauchen und dass Du beim Editieren mit einem vernünftigen Editor tatsächlich auch die Links mit aktualisierst. Wenn Dein Editor Hardlinks kaputtmacht, dann nimm stattdessen Symbolic Links (ln -s).

    Jan

  5. #5
    Registrierter Benutzer
    Registriert seit
    20.10.2000
    Beiträge
    78
    Danke Dir vielmals für Deine Mühe!!!

    Beste Grüße

Lesezeichen

Berechtigungen

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