我试图在 while 循环中将 grep 的 stdout 重定向到 read 命令的 stdin。下面的代码给了我语法错误 - "syntax error near unexpected token `<' "
提示:< 是一个 HTML 转义字符,实际上是 "<" 字符的转义形式。
提示:< 是一个 HTML 转义字符,实际上是 "<" 字符的转义形式。
while read -r line ; do
echo "Processing $line "
IFS=: read var1 var2 var3 <<< $line
if [ -n "$(expr match "$var3" '.*\(BEGIN\).*')" ]; then
echo "Found BEGIN"
(( var2 += 1 ))
read -r line1
IFS=: read var4 var5 var6 <<< $line1
if [ -n "$(expr match "$var6" '.*\(END\).*')" ]; then
echo "Found END"
(( var5 -= 1 ))
sed -i -e "$var2,$var5 s/# //" -e "$var2,$var5 s%/\* %%" -e "$var2,$var5 s% \*/%%" $var1
fi
else
echo "Found NOTHING"
sed -i -e "$var2 s%// %%" $var1
fi
done < <(grep -H -r -n Uncomment *)
sh
而不是bash
运行脚本时遇到了相应的错误。我会尽力保持翻译的准确性和可读性,但不会改变原意或添加任何额外内容。 - rrauenza