[英]BASH - grepping for a value stored in a variable
因此,我尝试通过以下命令在Windows注册表配置单元上使用grep:
grep -i -A6 HKEY_LOCAL_MACHINE\.SYSTEM\.ControlSet001\.Services\.atapi RegistryEntries/ControlSet001.reg | grep Start | tail -c 4
这工作得很好,并返回我感兴趣的值000
但是,当我尝试将“ atapi”存储在变量中时,如下所示:
x="atapi"
grep -i -A6 HKEY_LOCAL_MACHINE\.SYSTEM\.ControlSet001\.Services.\.$x RegistryEntries/ControlSet001.reg | grep Start | tail -c 4
我什么也没得到,我也尝试过使用
x=atapi
没有引号,仍然没有运气,我对BASH还是很陌生,所以我很可能会错过一些简单的东西!
这部分似乎是您的正则表达式中的问题:
Services.\.$x
由于它与文字Services
和任何字符之后的文字点匹配。
在Services
后删除多余的点,并使用带引号的grep命令:
x="atapi"
grep -i -A6 "HKEY_LOCAL_MACHINE\.SYSTEM\.ControlSet001\.Services\.$x" RegistryEntries/ControlSet001.reg | grep Start | tail -c 4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.