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

通过别名运行Ruby脚本时如何获取终端当前真实工作目录

问题原因

你目前使用的File.dirname(File.realpath(__FILE__))逻辑本身是用来获取Ruby脚本文件自身所在的存储路径的,__FILE__是Ruby内置常量,永远绑定当前脚本的文件路径,所以不管你在哪个目录执行脚本,返回的都是脚本存放的~/mycli目录,和执行命令时的工作目录无关。

修复方法

直接使用Ruby内置的Dir.pwd方法即可,它会返回当前Ruby进程的工作目录,也就是你执行run_me命令时终端所在的真实路径。

示例代码:

# 在脚本开头就可以直接调用,无需依赖__FILE__常量
current_work_dir = Dir.pwd
# 输出的就是你执行命令时终端所在的目录,比如 ~/some_random_directory
puts current_work_dir

注意事项

如果你的脚本逻辑中存在Dir.chdir切换目录的操作,建议在脚本最开头就将Dir.pwd的返回值存入变量留存,避免后续切换目录后无法获取初始执行路径。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:57:05