我正在尝试收听管道并编写此代码,但是我得到了模糊的重定向错误,为什么呢?
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
答案 0 :(得分:3)
我怀疑你的第一行因错误而失败:
pipe:找不到命令
因为bash
中的变量赋值不支持变量名和=
符号之间的空格。因此,$pipe
未定义且read line < $pipe
失败。尝试:
pipe="./$1"