Сценарий Bash с неблокирующим чтением

Я хочу отправить некоторые данные корневому процессу с помощью именованного канала. Вот сценарий, и он отлично работает:

#!/bin/sh
pipe=/tmp/ntp

if [[ ! -p $pipe ]]; then
    mknod -m 666 $pipe p
fi

while true
do
    if read line <$pipe; then
         /root/netman/extra/bin/ntpclient -s -h $line > $pipe 2>&1
    fi
done

На самом деле у меня есть несколько сценариев, подобных этому. Хочу объединить их все в один сценарий. Проблема в том, что выполнение блокируется при первом «чтении», и я не могу выполнить несколько «чтений» в одном процессе. Я ничего не могу сделать? Возможно ли чтение "неблокирующего" bash?

8
задан michelemarcon 2 February 2011 в 13:28
поделиться