Bash 脚本在特定输入上挂起

Bash 脚本在特定输入上挂起

我正在尝试编写一个简单的脚本,如果输入的第一个参数等于 -r 字符串,该脚本会执行某些操作。但每当我尝试运行此文件时,程序都会挂起,我必须使用 ctrl-Z 终止。

if [ "$1" == "-r" ]; then
 echo "check okay";
 for f in $(find . -maxdepth 1 -type f \( -name "*.h" -o -name "*.rb" \)); do
     if grep -q "$1" "$f"; then
         sed -i -E "s/${1}/${2}/g" $f;
         echo $f;
     fi
 done
 exit 1
fi

在过去的 6 个小时里我一直被困在这个问题上,它在语法上似乎是正确的,所以我无法弄清楚问题是什么。请帮忙,

谢谢

答案1

我无法使用grepGNU grep 以外的其他版本来测试它,但也有

grep -e -r

起到“掩蔽”作用-r;这也可能适用于其他版本(与 相比--)。

相关内容