我去检查 grep recursive ( grep -r
) 是否返回某些内容,所以我尝试了以下方法:
v5='blabla'
if grep -rq "$v5" "$1"; then
echo "word found Ok : $5"
else
echo "not found"
fi
$1
是一个参数。
当我把grep -q "$v5" "name_Of_File"
它放在工作时:我有这个输出:word found Ok
,但对我来说,我想在所有目录和子目录中搜索。
答案1
你可以grep -rq "$v5" "$1"
做$1
一个目录。您的代码应该按预期工作。没问题。
编辑:
我刚刚尝试了您的脚本,仅将$5
/替换$v5
为$1
并更改$1
为$2
具有两个参数。
#!/bin/bash
if grep -rq "$1" "$2"; then
echo "word found Ok : $1"
else
echo "not found"
fi
将脚本另存为rgrep.sh
并运行chmod +x rgrep.sh
。
要测试它,请创建一个测试文件并运行脚本(此处带有输出):
$ echo blablah > /tmp/blah
$ ./rgrep.sh "blabla" /tmp
word found Ok : blabla
$ ./rgrep.sh "blah" /tmp
word found Ok : blah
$ ./rgrep.sh "blapp" /tmp
not found