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