所以我试图通过以下命令在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很新,所以我很可能会错过一些简单的东西!
答案 0 :(得分: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