加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 如何在shell程序中grep变量?

发布时间:2020-12-15 21:56:08 所属栏目:安全 来源:网络整理
导读:参见英文答案 grep for expression containing variable????????????????????????????????????1个 #!/bin/bashfor ((var=0; var20; var++))doecho " Number is: $(grep 'Multiple_Frame = echo **$var**' 20mrf.txt | wc -l)" statisic.txt done 这个shell程
参见英文答案 > grep for expression containing variable????????????????????????????????????1个

#!/bin/bash

for ((var=0; var<20; var++))
do
echo " Number is: $(grep 'Multiple_Frame = echo **$var**'  20mrf.txt | wc -l)" >>statisic.txt 

done

这个shell程序无法产生正确的结果,这可能是第二个grep命令中返回错误的原因.

如何在第二个echo句子中grep变量?根据var变化来改变不同的东西?

非常感谢!

解决方法

正如其他人所说的那样,问题是单引号会阻止变量的扩展.但是,使用$()允许您使用双引号:

echo " Number is: $(grep "Multiple_Frame = echo **$var**"  20mrf.txt | wc -l)" >>statisic.txt

虽然我怀疑这样的事情是你的意思:

echo " Number is: $(grep "Multiple_Frame = $var"  20mrf.txt | wc -l)" >>statisic.txt

您还应该知道grep有一个输出计数的选项,因此您可以省略wc:

echo " Number is: $(grep -c "Multiple_Frame = $var"  20mrf.txt)" >>statisic.txt

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读