bash - 为什么调用 ${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 的终端运行它。有没有人有任何想法?
解决方案
因为你没有引用你的变量。
open "${DIR}/file_open.jpg"
你必须引用它。在这里查看为什么引用很重要。
DIR 也更简单:
DIR=$(dirname "$(readlink "${BASH_SOURCE[0]}")")
推荐阅读
- javascript - 以角度将文件转换为 uInt8Array
- python - tensorflow 2 中是否有一个函数,我可以创建一个由 1 和 0 组成的一维张量,它们之间的距离相等?
- embedded-linux - 在 Qemu 上运行 buildroot 生成的覆盆子图像的问题
- r - 你如何在 R 中的用户定义函数中使用 any、if_any 或类似的东西?
- google-apps-script - Google Sheets Apps 脚本 - 移动设备上的输入框
- javascript - 使用 mongodb 自动填充输入
- excel - 更改事件中的 Excel VBA 参数不是可选错误
- automated-tests - 如何对 Slack App 进行自动化测试?
- c# - 如何保护 Blazor 服务器端的关键数据
- lora - Raspberry Pi Pico 发送 LoRa 消息