Macos 为什么我会得到;没有这样的文件或目录;对于存在的目录?

Macos 为什么我会得到;没有这样的文件或目录;对于存在的目录?,macos,terminal,Macos,Terminal,我正在运行一个名为setenv.sh的脚本来设置环境变量。其中一行是: config.dir=/Users/arianna/work/next/conf 运行它之后,我收到一条错误消息说:config.dir=/Users/arianna/work/next/conf:没有这样的文件或目录 我很困惑,因为这个目录存在。我可以复制,粘贴和cd到它 我在这里感到困惑。怎么了?在变量中使用是导致问题的原因;在bash中,它用作环境变量和/或仅在某些shell中有效,这些shell可以将其识别为正则变

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

config.dir=/Users/arianna/work/next/conf
运行它之后,我收到一条错误消息说:
config.dir=/Users/arianna/work/next/conf:没有这样的文件或目录

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


我在这里感到困惑。怎么了?

在变量中使用
是导致问题的原因;在bash中,它用作环境变量和/或仅在某些shell中有效,这些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"
说明


当你说“在运行它之后”,你的意思是什么时候运行它?或者你是说以后你做别的事情的时候?如果是前者,你到底是如何运行脚本的?如果是后者,您是如何导致显示错误消息的?我的意思是,这是运行命令
/setenv.sh
的结果。错误消息是上述命令的结果。请注意,错误消息表示“
config.dir=
”正在被视为文件路径的一部分,而这并不存在。