Увеличение/уменьшение числа в файле с помощью скрипта (zsh)

Увеличение/уменьшение числа в файле с помощью скрипта (zsh)

Из скрипта (выполняемого несколько раз одновременно) я хотел бы создать файл вроде:

echo "0" > /tmp/count

Затем я хотел бы выполнить три функции.

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

которые выполняют довольно очевидную задачу: увеличивают значение в /tmp/count, уменьшают значение в /tmp/count и проверяют, равно ли значение нулю.

Я могу написать три программы на C, чтобы сделать это, но надеюсь, что способ уже существует. Есть предложения?

решение1

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

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

decrоставляется в качестве упражнения для читателя.

Связанный контент