Anzeige:
Ergebnis 1 bis 2 von 2

Thema: [bash] read -t funktioniert als cron-job nicht

  1. #1
    Fedi
    Gast

    [bash] read -t funktioniert als cron-job nicht

    Hallo,

    ich habe ein Skript, welches ich vorzugsweise per cron starte. Allerdings muss ich es manchmal auch auf der Konsole bzw. per ssh starten und dann möchte ich eine Benutzereingabe auslesen um einen bestimmten Teil zu überspringen.

    Starte ich das Skript manuell funktioniert es - auch wenn ich keine Eingabe mache (wie im Fall von cron).
    Per Cron-Job tut sich dann aber nichts mehr.

    Code:
    echo "Frage? (Sie haben 30Sekunden Zeit):   (j/n) "
    read -t 30 antwort -n 1
    if [ "$antwort" = n -o "$antwort" = N ]
    then
    echo "gut"
    else
    echo "auch gut"
    fi
    Hat jemand einen Tipp?

    Danke
    CU
    Fedi

  2. #2
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Moin,

    ich denke mal, das liegt daran, dass ein cron-Job eben kein STDOUT/STDIN hat (er hat es schon, aber das landet eben nicht auf einem Terminal) und das deshalb read fehlschlägt.

    Eine Möglichkeit ist, innerhalb des Scripts abzuprüfen, ob es ein Controlling TTY gibt:
    Code:
    if test ! "`/usr/bin/tty`" = "not a tty"; then
      read -p "Frage? (Sie haben 30 Sekunden Zeit): (j/n) " -t 30 -n 1 antwort
    fi
    Jan

Lesezeichen

Berechtigungen

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