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

如何让Bash脚本中变量动态获取当前执行目录路径?

解决Bash脚本中动态获取当前目录路径的问题

原脚本存在两个关键问题:

  1. 变量赋值语法错误:赋值时变量名前不应加$,正确写法是MY_SPECIAL_FILE="$(pwd)/hello.txt"
  2. 静态赋值导致路径固定:$(pwd)会在脚本执行时一次性获取初始工作目录,后续切换目录后变量值不会自动更新

要实现每次输出当前所在目录下的hello.txt路径,有两种实用方案:

方案一:使用函数动态计算

将变量替换为函数,每次调用时实时获取当前工作目录:

#!/bin/bash
MY_SPECIAL_FILE() {
    echo "$PWD/hello.txt"
}

使用方式:

# 切换到banana目录后执行
echo $(MY_SPECIAL_FILE)  # 输出 banana/hello.txt
# 切换到apple目录后执行
echo $(MY_SPECIAL_FILE)  # 输出 apple/hello.txt

方案二:直接使用内置变量$PWD

如果不需要封装成变量/函数,可直接在需要的地方使用"$PWD/hello.txt",每次引用都会实时获取当前目录:

# 切换到banana目录后执行
echo "$PWD/hello.txt"  # 输出 banana/hello.txt

注:$PWD是Bash内置变量,会自动跟随当前工作目录变化,比调用pwd命令更高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 07:03:17