Ändern allgemeiner Projektbibliothekswerte über ein Bash-Skript

Ändern allgemeiner Projektbibliothekswerte über ein Bash-Skript

Ich habe ein Projekt mit einer gemeinsamen Bash-Datei für Variablen. Gibt es eine Möglichkeit, diese über Skripte zu ändern?

Ein Beispiel für ein Aktionsskript:

$ cat sampleaction.sh
#!/bin/bash

# Source variables
. commonlibrary

# Do action according to mode
case $MODE in 
    idle)
        #do nothing
    active)
        #do something

$MODEexistiert in einer gemeinsamen Datei und wird nur beim Start jedes einzelnen Aktionsskripts überprüft. Ich möchte, dass diese Variable vom Setup-Bash-Skript gesetzt wird, wenn es ein Flag enthält, z. B. --active.

Das Setup-Skript:

cat initaction.sh
#!/bin/bash

# Source variables
. commonlibrary

# Check flags
while [ $# -gt 0 ]
do 
    case $1 in
        --active)
            shift;
            MODE=active;;
    esac
done

Antwort1

Sie können die Variable in der gemeinsamen Datei ändern, indem Sie die neuen Werte einfach in diese Datei übertragen:

echo "MODE=active" > commonlibrary

Ein Beispiel mit Ihrem Code:

#!/bin/bash
. commonlibrary

case $MODE in 
    idle)
        #do nothing
    active)
        echo "MODE=newmode" > commonlibrary

Wenn Sie nun mehr als eine Variable in dieser Datei hätten, würde dies ein Problem darstellen. Sie müssten zuerst jede Variable abrufen und dann alle neuen Werte erstellen und sie der Datei hinzufügen. Es gibt viele Möglichkeiten, dies zu tun. Sie können entweder danach recherchieren oder sich eine eigene Methode ausdenken.

verwandte Informationen