2014-07-26 66 views
1

所以我想在Windows注册表配置单元使用grep,通过以下命令的值:BASH - grepping存储在一个变量

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很新,所以我很可能错过了一些简单的东西!

回答

1

这部分似乎是在你的正则表达式的问题:

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 
+0

谢谢!这工作,我真的很感谢你的帮助! – Bubo