Inkrementieren/Dekrementieren einer Zahl in einer Datei aus einem (zsh-)Skript

Inkrementieren/Dekrementieren einer Zahl in einer Datei aus einem (zsh-)Skript

Aus einem Skript (das mehrmals gleichzeitig ausgeführt wird) möchte ich eine Datei wie diese erstellen:

echo "0" > /tmp/count

Dann möchte ich drei Funktionen ausführen.

incr /tmp/count
decr /tmp/count
is_zero /tmp/count

die das ziemlich Offensichtliche tun: den Wert in /tmp/count erhöhen, den Wert in /tmp/count verringern und prüfen, ob der Wert Null ist.

Ich kann dazu drei C-Programme schreiben, aber ich hoffe, dass es bereits eine Möglichkeit gibt. Irgendwelche Vorschläge?

Antwort1

incr() {
    var=$(< "$1")
    var=$((var + 1))
    echo $var > "$1"
}

is_zero() {
    var=$(< "$1")
    [[ var -eq 0 ]]
}

decrbleibt dem Leser als Übung überlassen.

verwandte Informationen