Чтение именованной трубы один раз при каждой записи входных данных

Точная команда для замены - swapon и переключатель s (например, swapon -s ) поможет вы можете получить пространство подкачки. Также вам поможет free -tm .

9
09.09.2018, 18:37
2 ответа

Один из способов сделать это:

#! /usr/bin/env bash
pipe=/path/to/pipe
[ -p "$pipe" ] || mkfifo -m 0600 "$pipe" || exit 1
while :; do
    while read -r cmd; do
        if [ "$cmd" ]; then
            printf 'Running %s...\n' "$cmd"
            # sh -c "$cmd" sh
        fi
    done <"$pipe"
done

Вероятно, раскомментировать строку sh— плохая идея.

7
29.04.2021, 00:00

В вашем случае можно сделать просто:

tail -f $pipe | sh & 

циклы не нужны.

7
29.04.2021, 00:00

Теги

Похожие вопросы