Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Bash Variablen auslagern

  1. #1
    Registrierter Benutzer
    Registriert seit
    03.07.2014
    Beiträge
    6

    Bash Variablen auslagern

    Hallo Community

    Ich habe den Drang meine Scripts zu verbessern.

    Zuerst einmal etwas über das Gegebene:
    - Ein übergeordnete Software ruft eine Reihe verschiedener Scripts auf. Die Abfolge der Scripts unterscheidet sich von Fall zu Fall.
    - Die meisten der aufgerufenen Scripts modifizieren und definieren (unter Anderem) Variablen.
    - Um die Variablen wieder für das nächste Script zur Verfügung zu stellen, speichere ich diese in einer TXT Datei zwischen.
    - in jedem Script wird dieses TXT File wieder eingelesen, die Variablen sind dann wieder verfügbar.

    Code:
    . /path/to/Variablen.txt
    Das Problem:
    Mit der Weiterentwicklung der Scripts kommen neue Variablen hinzu und alte fallen weg. Das heisst:
    => dass es früher oder später "Leichen" in den TXT Dateien gibt (nämlich dann, wenn nicht 100% sauber gearbeitet wird)
    => es einfach nur mühselig ist, diese unzähligen Einträge ala:
    Code:
    ...
    echo "VAR1=$VAR1" >> Variablen.txt
    echo "VAR2=$VAR2" >> Variablen.txt
    echo "VAR3=$VAR3" >> Variablen.txt
    ...
    zu pflegen.


    Was ich nun suche, ist eine einfachere bzw. geschicktere Art und Weise, Variablen für andere Scripts zur Verfügung zu stellen.
    Nur leider habe ich die Lösung dafür nicht mal im Ansatz.

    Ich arbeite mit der GNU bash 3.2.51 und wäre froh wenn dies so bleiben könnte.


    Jeder Gedankenanstoss ist herzlich Willkommen!


    Grüsse $dollar

  2. #2
    Administrator
    Registriert seit
    13.04.1999
    Ort
    Reutlingen
    Beiträge
    535

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.07.2014
    Beiträge
    6
    Hi netzmeister

    Danke für den Link, aber der Topic ist ein anderer; und zwar habe ich x (haufenweise) Variablen welche ich für nachfolgende Scripts in einem TXT auslagere.
    Ich lagere diese deshalb in ein TXT aus, weil ich nicht weiss, welches Script als nächstes auf die Variablen zugreifen wird (der Zugriff ist prozessabhängig).

    Mein Problem ist nun, dass das schreiben in die Textdatei wiefolgt:

    Code:
    ...
    echo "VAR1=$VAR1" >> Variablen.txt
    echo "VAR2=$VAR2" >> Variablen.txt
    echo "VAR3=$VAR3" >> Variablen.txt
    ...
    ..zuhnemend unübersichtlicher wird. Es ist allgemein auch ziemlich fehleranfällig.

    Ich suche nach einem Befehl, welcher alle in diesem Script verwendeten Variablen automatisch in eine Datei schreibt - irgendwie sowas würde ich mir auf jeden Fall wünschen.


    Gruss $dollar

  4. #4
    Registrierter Benutzer
    Registriert seit
    03.07.2014
    Beiträge
    6
    Hallo

    Ich habe nun eine Lösung gefunden:
    Code:
    ( set -o posix ; set ) >/tmp/variables.before
    ...
    source script
    ...
    ( set -o posix ; set ) >/tmp/variables.after
    diff /tmp/variables.before /tmp/variables.after
    rm /tmp/variables.before /tmp/variables.after

    Quelle: http://stackoverflow.com/questions/1...script-in-bash

    PS: um exakt die Änderungen ohne Angaben zur Zeile etc. per diff Befehl zu erhalten brauchst Du das hier:
    diff file1 file2 | grep ">" | sed 's/^> //g' > diff_file
    Quelle: http://stackoverflow.com/questions/4...-item-per-line


    Grüsse $dollar
    Geändert von dollar (09-07-2014 um 14:22 Uhr)

Lesezeichen

Berechtigungen

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