在ruby 中,以下代码可以获得当前脚本的绝对路径:

require 'pathname' puts Pathname.new(__FILE__).realpath

将以上代码保存在test1.rb中,然后放在D盘的根目录下。测试的时候我们进入C盘,执行ruby d:/test1.rb,控制台会输出当前脚本的绝对路径:d:/test1.rb。

有人可能会问,Dir.pwd不是也可以获取吗?其实是不行的。Dir.pwd获取的是工作目录,我理解的工作目录就是RUBY的调用目录,也就是说你获取的是在哪个目录下调用的脚本,而不是脚本在哪个目录。我们可以做以下实验,首先创建一个test2.rb文件,录入代码如下:

puts  Dir.pwd

保 存后,我们把这个文件也放到D盘根目录下,然后在CMD命令行下我们进入C盘,(注意,是C盘哦!),然后执行:ruby test2.rb,你认为它会输出什么呢,是D:/ 吗?错,是c:/ !让我们来看的更清楚些,在CMD命令行下进入c:/windows/system目录,执行ruby d:/test2.rb,你会看到输出的结果是c:/windows/system。这下清楚了吧,你在哪个目录下调用的脚本,Dir.pwd返回的就是 哪个目录,但是这个脚本所在的真实路径是没有关系的。官方的API上写的是返回工作目录,我们很容易把它理解成绝对路径的。

其他的操作方法有:

获得当前执行文件的文件名:

__FILE__

获得当前文件的目录

File.dirname(__FILE__)

获得当前执行文件的完整路径

require ‘pathname’
Pathname.new(__FILE__).realpath

获得当前执行文件的目录完整路径

require ‘pathname’
Pathname.new(File.dirname(__FILE__)).realpath

转载于:https://www.cnblogs.com/fpcbk/p/10831607.html

ruby的DIR.pwd相关推荐

  1. ruby和python简单对比

    先说说题外话,以前很少写blog,最开始有整理过技术文章到QQ空间,后面整理到WORD以及文本里.再后来网上查找资料的之后发现cnblog上面的蛮专业的.我也觉得把资料存放在网络中永远不会丢.所以就出 ...

  2. Ruby file操作cheatsheet

    每次都要查,真是蛋疼,不如一次性总结一下,以后再不记得就来这里找好了. 以下代码中需要用到的文件名:filename = 'testfile.txt' 读取其中的全部内容:File.read(file ...

  3. 基于Ruby的Watir-WebDriver自动化测试框架

    基于Ruby的watir-webdriver自动化测试方案与实施(五) 基于Ruby的watir-webdriver自动化测试方案与实施(四) 基于Ruby的watir-webdriver自动化测试方 ...

  4. Ruby 文件目录操作(实例讲解更易懂)

    IO 操作 $stdout [4] pry(main)> $stdout.print "Output to $stdout.\n" Output to $stdout. =& ...

  5. ruby获取本机mac加密生成lisence文件,客户端根据lisence许可调用主程序

    需求: 提取客户本机Mac地址,生成Md5值.(客户使用,提供给厂商) 对该Md5值进行加密,生成lisence.txt文件.(厂商生成) 获取当前目录的lisence文件,解密,如果解密后与加密之前 ...

  6. Ruby学习之文件的写入和读取

    Ruby 提供了一整套 I/O 相关的方法,在内核(Kernel)模块中实现,所有的 I/O 方法派生自 IO 类,类 IO 提供了所有基础的方法,比如 read. write. gets. puts ...

  7. 【Linux】一步一步学Linux——pwd命令(19)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 pwd命令是print working directory ...

  8. docker $PWD路径_Docker安装Jenkins+Shell脚本自动化部署项目

    本文同名博客老炮说Java:https://www.laopaojava.com/,每天更新Spring/SpringMvc/SpringBoot/实战项目等文章资料 Sentinel+Nacos 是 ...

  9. linux 命令:pwd详解

    pwd的功能是打印当前工作目录的名字 先看一下帮助文档:命令是help pwd pwd: pwd [-LP]打印当前工作目录的名字.选项:-L 打印 $PWD 变量的值,如果它命名了当前的工作目录-P ...

最新文章

  1. [01]EXTJS4.0的概述和HELLOWORD程序
  2. Nginx 负载均衡 - linux下nginx加载配置文件异常处理,提示invalid PID number in “/run/nginx.pid“问题解决
  3. 计算机应用在开始栏显示乱码,大神解决win10系统应用程序和开始菜单出现乱码的详细方案...
  4. 10.8-全栈Java笔记:序列化/反序列化的步骤和实例
  5. Shell脚本监控CPU、内存和硬盘利用率
  6. 台式电脑怎么截屏_台式电脑怎么使用无线网卡
  7. go 变量大写_和我一起学Go系列:Go基本语法概览
  8. python list拆分_python里如何把一个list分成两个
  9. 10个前端经常遇到的问题解决方案
  10. 晶振为什么不封装进芯片内部?
  11. ckPlayer播放器嵌入页面时报错CKobject is not defined解决方案
  12. Java全栈工程师必备技能_一个优秀的“全栈工程师”要具备哪些素质呢?
  13. 算法工程师的职业发展前景思考和总结
  14. 使用Unity3D引擎制作塔防类游戏(一)
  15. OpenCASCADE:OCCT应用框架OCAF之XML支持
  16. 网红奶茶品牌茶颜悦色,开业仅半小时就停业,黄牛价200元一杯
  17. DHCP,服务器,汇聚层三层交换机,网关
  18. 为什么要研究引起潜在大流行病的病原体?
  19. Java--敲重点!JDK1.8 HashMap特性及底层数组+单链表+红黑树知识(建议收藏)
  20. 【论文阅读】Learning Deep Features for Discriminative Localization

热门文章

  1. 1到3岁宝宝如何选择玩具
  2. 【面试题】面试题Redis
  3. 头歌--C++ 面向对象 - STL 的应用
  4. (although at least one Creator exiceParam` (although at leists): no String-argument constructor/fact
  5. 合肥 python 培训
  6. 数据库实验 统计查询和组合查询
  7. vector sort 出现异常处理--std::sort(_RanIt,_RanIt,_Pr)
  8. java自动生成接口文档
  9. Reactive思考
  10. HDMI协议介绍(四)--Video