Har*_*asa 3 bash grep while-loop
我试图将grep的stdout指向while循环中的read命令的stdin
下面的代码给我语法错误 - "语法错误附近意外令牌`<'"
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 *)
Run Code Online (Sandbox Code Playgroud)
该< <(...)语法仅在炮弹可用ksh扩展,像ksh本身或bash.当我运行你的代码时,sh我得到了完全相同的错误.
更新(或添加!)你的shebang是#!/bin/ksh或#!/bin/bash
| 归档时间: |
|
| 查看次数: |
553 次 |
| 最近记录: |