为什么zsh无法从脚本中的路径读取〜(波浪号)?

时间:2019-07-09 11:37:40

标签: shell path export zsh oh-my-zsh

zsh从脚本中导出PATH时,它没有正确读取路径。

我的PATHexport PATH="~/path/to/stuff/",但是当我尝试运行位于该路径的命令时,zsh找不到它。

当我将PATH更改为export PATH="$HOME/path/to/stuff/"时,zsh便能够运行命令。

编辑:奇怪的是,我刚刚检查了一下,它再次与export PATH="~/path/to/stuff/"一起使用。我的开发环境肯定有些奇怪。

编辑2:我之前没有提到我正在阅读的export PATH="~/path/to/stuff/"脚本正在为主要使用bash作为开发人员的开发人员团队构建本地开发环境。他们的壳。我更喜欢使用zsh,所以我必须让我的外壳在整个团队中占主导地位的bash设置的所有配置中都能很好地发挥作用。

1 个答案:

答案 0 :(得分:0)

使用以下代码获取所需内容:

export PATH=~/Desktop/Capture/
echo $PATH

# Result:    /Users/swift/Desktop/Capture/

尽管如此,当您使用字符串时,会得到以下提示:

export PATH="~/Desktop/Capture/"
echo $PATH                      

# Result:    ~/Desktop/Capture/
  

因此,为了正确处理,您必须尝试这种方法

tilde=~
export PATH="${tilde}/Desktop/Capture/"
echo $PATH                             

# Result:    /Users/swift/Desktop/Capture/

P.S。另外,还有一个有用的命令可以扩展波浪号

这是一个示例

echo tilda=~

# Result:    tilda=~

magicequalsubst中使用zsh命令

set -o magicequalsubst
echo tilda=~    

# Result:    tilda=/Users/swift