You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash脚本如何检测当前脚本相对路径上层目录的文件是否存在

Bash 获取相对于当前运行脚本的文件路径方法

在Bash环境下要计算相对当前脚本的文件路径,核心依赖内置变量${BASH_SOURCE},这个变量会始终返回当前正在执行的脚本的自身路径,不会受脚本执行时所在的工作目录影响。

对应你给出的场景:

  • 当前运行脚本路径:..../app/scripts/dev.sh
  • 待检测目标文件路径:..../app/dist/file.js

相当于从脚本所在的scripts目录向上退1级到app目录,再进入dist目录即可定位到目标文件,实现代码如下:

# 拼接得到目标文件的相对路径
target_path="${BASH_SOURCE%/*}/../dist/file.js"

# 检测文件是否存在
if [ -f "$target_path" ]; then
    echo "文件存在,路径为:${target_path}"
else 
    echo "文件不存在,路径为:${target_path}"
fi

注意事项

  • 变量引用时建议包裹双引号,避免路径中存在空格、特殊字符时逻辑报错
  • 如果需要得到无相对层级的绝对路径,可以搭配realpath命令处理:
    target_path=$(realpath "${BASH_SOURCE%/*}/../dist/file.js")
    

内容的提问来源于stack exchange,提问作者ZiiMakc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:57:01