zsh无法识别环境变量 - 没有此文件或目录 - Unix - MacOS

3

期望行为

使用环境变量列出目录中的文档。

重现步骤

INPUT
$ export ICLOUD_D="~/Library/Mobile\ Documents/com~apple~CloudDocs/"
$ source ~/.zshrc
$ echo $ICLOUD_D
$ ls $ICLOUD_D

OUTPUT
$ ~/Library/Mobile\ Documents/com~apple~CloudDocs/
$ ls: ~/Library/Mobile\ Documents/com~apple~CloudDocs/: No such file or directory

当前行为

Shell 给出了一个文件或目录不存在的错误。

修复步骤

如果我直接使用 ls 命令并粘贴文件路径,我就能如预期般列出文件。

我也尝试在环境变量周围加上引号。

$ ls "$ICLOUD_D"

系统信息 - 操作系统: MacOS v 10.15 - Shell: zsh

1个回答

2

不要在环境变量周围加上引号

输入

$ export ICLOUD_D=~/Library/Mobile\ Documents/com~apple~CloudDocs/
$ source ~/.zshrc
$ echo $ICLOUD_D
$ ls $ICLOUD_D

输出

$ ~/Library/Mobile\ Documents/com~apple~CloudDocs/
$ afile
$ bfile
$ ...

2
只有初始的 ~ 需要取消引用。其余部分可以加引号以避免需要使用 \ 显式转义任何封闭字符。 - chepner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接