grep查找可以正常执行,但是grep的结果无法赋值给一个变量,也无法传给sed。这里,执行下面两条语句

lst=`grep -rl '\\' ./`
sed -i 's/\\//g' `grep -rl '\\' ./`

会报错:
在这里插入图片描述
很奇怪。
查了很久,终于发现有篇很赞的博文找到了原因:在shell脚本中,赋值时,正则表达里的转义符两个backslash都需要转义

改成下面这样,就可以正确执行了。

lst=`grep -rl '\\\\' ./`
sed -i 's/\\//g' `grep -rl '\\\\' ./`
                    grep查找可以正常执行,但是grep的结果无法赋值给一个变量,也无法传给sed。这里,执行下面两条语句。这些命令都可以正常执行,grep输出的查找结果,可以赋值给一个变量,也可以传给sed。找到了原因:在shell脚本中,赋值时,改成下面这样,就可以正确执行了。但在shell脚本中,
  命令:cat /home/shell/text|grep -c "设置"
  命令解释:查看/home/shell/text文件内容返回控制台,通过 | 符号连接多个目录来查看