0

パイプをリッスンしようとしてこのコードを書きましたが、あいまいなリダイレクト エラーが発生します。なぜですか?

pipe = "./$1"

# trap enables to execute a command when a signal is sent to your script
trap "rm -f $pipe" EXIT


if [[ ! -p $pipe ]]; then
    mkfifo $pipe
fi


while true
do
    if read line <$pipe; then
        if ["$line" == 'EXIT'  -o  "$line" == 'exit' ]; then
            break
        else 
            echo $line
        fi
    fi
done
4

1 に答える 1

3

最初の行が次のエラーで失敗したと思われます。

パイプ: コマンドが見つかりません

の変数代入は、変数名と記号bashの間の空白をサポートしていないためです。=したがって、$pipe未定義のままでread line < $pipe失敗します。試す:

pipe="./$1"
于 2012-07-30T10:10:22.400 に答える