首页 > 解决方案 > 为什么我得到一个存在的目录“没有这样的文件或目录”?

问题描述

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

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

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

我很困惑,因为这个目录存在。我可以复制和粘贴并 cd 进去。

我在这里糊涂了。怎么了?

标签: macosterminal

解决方案


在变量中使用 a.是导致问题的原因;在 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"

说明

引用名称包含点的 bash 变量


推荐阅读