使用程序化命令替换$填充PATH env变量会导致文字上的巨型字符串,而不是标记化的路径

问题描述

我正在创建一个PATH环境变量,该变量以/foo开头,以/bar结尾;并在我之间“夹心”我以编程方式串联在一起的一组相关bin路径,如下所示:

export PATH=/foo:$(ls -1d /path/to/*/bin | xargs | sed -e 's/ /:/'g):/bar

我遇到的问题是中间的路径集被解释为一个巨型字符串,而不是被冒号(“:”)分隔的标记化路径。

为了获得标记化结果,我尝试了一些变体,例如:

export PATH=/foo:$(echo $(ls -1d /path/to/*/bin | xargs | sed -e 's/ /:/'g)):/bar

但是没有运气。我还尝试了包含eval(1)等的变体。我想我接下来可以尝试使用find(1)和朋友。

有效的方法粘贴文字长字符串,但这真是令人讨厌,因为它不是程序性的。

顺便说一句,此问题并非特定于PATH,因为用export BLAH=...替代会导致相同的问题。

是否有任何修改上述内容的想法,以便将结果标记化?您可以通过创建user$ mkdir -p /tmp/{1,2,3,4}/bin并进行游戏来自己尝试。

无论解决方案是什么,今天都还没来。 =:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)