Variable im shell script übergeben

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen
    ich habe ein script das ich über cron alle paar Minuten laufen lasse.
    Im script setzte ich eine variable und exportiere diese.
    z.B.
    export var=1
    oder so
    var=1
    export var

    Beim nächsten script Durchgang ist die Variable nicht verfügbar.
    Hoffe man kann mir helfen.
    Eiermann1

    Einmal editiert, zuletzt von eiermann1 (23. April 2013 um 12:47)

  • Variablen sind sind nur in der shell gültig, in der sie definiert wurden. Wird die shell beendet, sind sie weg.
    Braucht man permanente Variablen, so muss man sie in Dateien schreiben und sie dann wieder auslesen.

    Entweder, du denkst dir selbst aus, wie die Dateien heißen und wo sie gespeichert sind.
    Oder du verwendest Dateien, die eh verwendet werden.

    Wenn du im script nicht sagst, welche shell du verwenden willst, dann wird die shell sh verwendet.
    Da über cron keine Login-Shell gestartet wird, funktioniert /etc/profile und ~/.profile nicht.
    -> also eigene Dateien verwenden.

    Steht in der ersten Zeile des Scriptes
    #!/bin/bash
    wird die bash-Shell verwendet. Dann wird die ~/.bashrc ausgelesen und du kannst hier Variablen setzen.
    Veränderst du aber die Werte der Variablen in deinem Script, dann nimm lieber speziell für dein Script angelegte Dateien

    Keep it simple [,&] stupid

  • [OffTopic]
    Vorsicht mit den Shells und dem shebang. Die sh gibt es auf kaum noch einem System. Es ist normal ein Link auf eine andere Shell, meist der bash, bei Debian zeigt der auf die dash.
    Um das ganze lustig zu machen ignoriert die Bash diesen Link wenn sie auf #!/bin/sh trifft und nutzt satt dessen '#!/bin/bash --posix'.
    Dadurch ist es ein Unterschied ob man ein Script mit 'sh ./script.sh' aufruft oder ausführbar macht und nur './script.sh' nimmt.
    Aber genug abgeschweift.
    [/OffTopic]

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!