前几天我偶然发现了一个关于SO的问题。如果我想在/ etc / sysconfig / network中提取包含
的HOSTNAME
的值
NETWORKING=yes
HOSTNAME=foo
现在我可以做grep并剪切以获得foo
但是有类似问题涉及一些bash魔法。我不知道该搜索什么,我现在似乎无法找到问题。它涉及#{HOSTNAME}
之类的内容。好像它将HOSTNAME
视为关键字并将foo
视为值。
答案 0 :(得分:2)
如果该配置文件与shell语法兼容,只需将其包含为shell脚本即可。 IIRC,类似Red Hat的发行版/etc/sysconfig
中的文件确实设计为可由shell解析。请注意,这意味着
var="value with spaces"
需要引号。 var="with\$dollar"
需要反斜杠。如果这些假设有效,那么你可以走简单路线:
. /etc/sysconfig/network
echo "$HOSTNAME"
关于引用和括号,请参阅$VAR vs ${VAR} and to quote or not to quote。