【发布时间】:2013-01-29 23:01:17
【问题描述】:
我想要一个扩展所有传递给它的环境变量的函数。当调用转换(假设 $HOME=MyHome)“$HOME/foo $HOME/bar ~myname”到“/MyHome/foo /MyHome/bar /usr/xyz/myname”时,我发现了各种各样的东西将相对路径扩展到绝对路径,但我还没有找到任何完全符合我要求的东西。我希望以前已经这样做过,但我找不到。
【问题讨论】:
-
在我的 solaris 机器上不存在。
-
@juanchopanza 他必须手动进行解析(虽然实际上,如果只是替换 $var 和 ~,解析应该非常简单)。 At dale:你确定 Solaris 没有 wordexp 吗?我对 Solaris 不是很熟悉,但它倾向于非常接近 POSIX,对吧?
-
嗯,你能在所有包含文件夹中搜索
wordexp.h吗?也许它只是不是你所期望的。它实际上可能在posix/wordexp.h而不仅仅是wordexp.h。我实际上是要建议你从 glibc 借代码,但是在找到它之后,这似乎是一条糟糕的路线。 glibc 中的 wordexp 代码为 53KB(尽管就 glibc 而言,它实际上并不那么神秘)。 -
@Corbin Weird,我发誓我看过,你是对的。它存在,我会使用它。