如何将包含冒号(“:”)的目录添加到 PATH 中?

如何将包含冒号(“:”)的目录添加到 PATH 中?

这里我找到了带有名称的文件..:;mkdir '..:;'工作得很好。但在 PATH 中,目录名称由:.如何将该目录添加到PATH?

答案1

POSIX 标准明确提到不可能在变量值:中使用名称中包含的目录。PATH

请参阅标题为“PATH环境变量”的部分中有关环境变量的条目其他环境变量

由于<colon>在此上下文中 是分隔符,因此可能使用的目录名称PATH不应包含<colon>字符。


zshshell 中,您可以将目录添加到搜索路径中,并通过修改path数组变量(即 PATH):

path+=( '/some/path/..:;' )

或者首先添加条目而不是最后添加条目:

path=( '/some/path/..:;' $path )

PATH但是,执行此操作后,使用而不是通过数组修改 shell 的搜索路径path将导致..:;条目在:.另请注意,虽然修改后的路径可能在zshshell 中工作,但它不太可能在另一个 shell 或从该 shell 启动的应用程序中按预期工作。

答案2

根据StackOverflow 上的这个答案,这是不可能的,因为$PATHshell 不解释它,但 execvp它不提供转义分隔符。

相关内容