有關bash的read指令失效 - Linux

Table of Contents

我做一個search keyword in multi files Script shell
其中read 這一行無法產生作用, 也就是不能暫停迴圈, 直到我按一鍵
find "$1" -type f -iname "$2" |
while read filename
do
matchStr=$(grep -inC3 "$3" "$filename" )

if [ "$matchStr" != "" ];
then
echo "---"
echo -e "\033[00;33m$filename\033[0m"
grep -inC3 "$3" "$filename" --color
read -p "enter any key...." answer
fi

done

我懷疑第二行的read 已經改變standard io 改成從 file而不是keyboard
這是我的懷疑啦

謝謝~

--

All Comments

Audriana avatarAudriana2015-10-17
find 之前加上 exec 5<&0; 然後 read -p 該句最後補上 0<&5
Carolina Franco avatarCarolina Franco2015-10-21
真的可行耶,請問大師,這是什麼魔法?
Ingrid avatarIngrid2015-10-22
redirection operator - duplicating file descriptors
Gary avatarGary2015-10-25
謝謝大師開導
Puput avatarPuput2015-10-27
find之前加開了fd 5的話,那是不是最好用完後把它關掉?
Isla avatarIsla2015-10-30
也就是原文中的while do done之後…
Gary avatarGary2015-11-03
再新增一行 exec 5<&- 呢?
Yuri avatarYuri2015-11-05
以避免接下來後續script有地方誤用到?!