【发布时间】:2011-09-25 14:36:25
【问题描述】:
我有一个字符串存储在一个文件中,该文件被读入一个字符串。 我希望将 *nix shell 格式中定义的变量替换为相应的环境值。
例如,$DEPLOY=/home/user 的环境变量会将"deploypath=$DEPLOY/dir1" 变成"deploypath=/home/user/dir1"
有没有一个简单的库可以做到这一点?
即
#include "supersimplelib.h"
char *newstr = expandvars(oldstr);
(或类似的)
我知道我可以使用正则表达式库,然后调用getenv(),但我想知道是否还有其他更简单的方法?
它只会在Linux下编译。
【问题讨论】:
-
我可以或应该回答我自己的问题吗?我找到了这个wordexp,这就是我所追求的。
-
是的,您可以(并且应该)。请参阅FAQ。
-
在您发布此内容时正在写我的答案...
-
FWIW,Windows 有
ExpandEnvironmentStrings功能可以做到这一点,但它不是可移植的。
标签: c linux environment-variables