为什么在调用$ {DIR}时DIR =“ $(cd” $(目录名“ $(readlink” $ {BASH_SOURCE [0]}“)”)“ && pwd)”返回“没有这样的文件或目录”?

时间:2018-10-15 13:18:36

标签: bash unix

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

var str = document.getElementsByTagName('body')[0].innerText;
var substring = "raju";
if(str.includes(substring)){
alert('found');
}

设置目录,然后,我尝试通过以下方式打开文件:

DIR="$( cd "$( dirname "$( readlink "${BASH_SOURCE[0]}" )" )" && pwd )"
我得到open ${DIR}/file_open.jpg

。我不确定为什么这行不通。我正在Mac OSX的终端上运行它。有人有什么想法吗?

1 个答案:

答案 0 :(得分:1)

因为您没有引用变量。

open "${DIR}/file_open.jpg"

您必须引用它。请参见here,为什么报价很重要。

DIR也更简单:

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