即使文件不存在,如何执行 grep 操作?

jan*_*ani 5 grep ksh shell-script files

我在我的代码中做了类似的事情

file_nm=`ls -latr *abc*`
if [ `grep "search_txt" "$file_nm" | wc -l` -gt 0 ]
then
  echo "string found"
else
  echo "string not found"
fi
Run Code Online (Sandbox Code Playgroud)

如果file_nm解析为空白,则我的代码将挂起,因为grep预期该file_nm值为空白。我怎样才能使这段代码工作?grep如果文件不存在,是否有任何选项可以绕过该命令?

小智 0

您应该在运行 grep 之前测试是否$file_nm为空

if [ -n "$file_nn" ];
Run Code Online (Sandbox Code Playgroud)

如果 $file_nm 不为空,将返回 True。