0
我有以下腳本代碼:使用文件輸入作爲標準輸入shell腳本不起作用
$./test.sh <input.txt
:
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
當我運行
我得到我的劇本鎖定
我nput.txt
start
stop
sthh
爲什麼我的腳本被鎖定?我如何解決這個問題?
順便說一句:如果我手動輸入數據,那麼腳本不會鎖定。
它的工作原理。謝謝。解釋爲什麼它不適用於1? – MOHAMED
我在使用這段代碼時不小心。 '<&1'表示從stdout獲得。所以我的腳本期望從stdout輸入數據而不是stdin。用'<&0'改變它將起作用。 – MOHAMED
謝謝你的回答(+1)並接受 – MOHAMED