首页 > 解决方案 > 为什么调用 ${DIR} 时 DIR="$( cd "$( dirname "$( readlink "${BASH_SOURCE[0]}" )" )" && pwd )" 返回“没有这样的文件或目录”?

问题描述

我目前正在尝试查找我正在调用的脚本的完整目录名称。我在网上找到了使用以下代码的代码:

DIR="$( cd "$( dirname "$( readlink "${BASH_SOURCE[0]}" )" )" && pwd )"

设置目录,然后,我尝试通过调用打开一个文件:

open ${DIR}/file_open.jpg

我得到-bash: /Volumes/Drive: No such file or directory的。我不确定为什么这不起作用。我从 Mac OSX 的终端运行它。有没有人有任何想法?

标签: bashunix

解决方案


因为你没有引用你的变量。

open "${DIR}/file_open.jpg"

你必须引用它。在这里查看为什么引用很重要。

DIR 也更简单:

DIR=$(dirname "$(readlink "${BASH_SOURCE[0]}")")

推荐阅读