我有以下脚本代码:
test.sh
echo "BEGIN"
while read CMD <&1; do
[ -z "$CMD" ] && continue
case "$CMD" in
start)
echo "get_start"
;;
stop)
echo "get_stop"
;;
*)
echo "get_uknown_command"
;;
esac
echo "END";
done
当我用它运行时:
$./test.sh <input.txt
我的脚本被锁定了
input.txt中
start
stop
sthh
为什么我的脚本被锁定了?我该如何解决这个问题?
BTW:如果我手动输入数据,那么脚本将无法锁定。
答案 0 :(得分:3)
您需要<&1
为什么?
删除它,它的工作原理。
while read CMD; do
./test.sh < input.txt
BEGIN
get_start
END
get_stop
END
get_uknown_command
END