为什么我为存在的目录得到“没有这样的文件或目录”?

时间:2019-05-17 20:52:00

标签: macos terminal

我正在运行一个名为setenv.sh的脚本,用于设置环境变量。其中一行是:

config.dir=/Users/arianna/work/next/conf

运行它后,我收到一条错误消息:config.dir=/Users/arianna/work/next/conf: No such file or directory

我很困惑,因为该目录存在。我可以复制粘贴并粘贴到其中。

我在这里迷住了。怎么了?

1 个答案:

答案 0 :(得分:1)

在变量中使用.是引起问题的原因;在bash中,它用作环境变量和/或仅在某些可以将其识别为常规变量的shell中有效。除非您绝对需要使用点,否则我建议您使用下划线。

config_dir=/Users/arianna/work/next/conf

如果要将其用作环境变量或检索它,则可以执行以下操作:

config_dir=$( env 'config.dir=/Users/arianna/work/next/conf' \
              awk 'BEGIN {print ENVIRON["config.dir"]}' )

echo "$config_dir"

说明

Reference to a bash variable whose name contains dot