ruby的DIR.pwd
在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相关推荐
- ruby和python简单对比
先说说题外话,以前很少写blog,最开始有整理过技术文章到QQ空间,后面整理到WORD以及文本里.再后来网上查找资料的之后发现cnblog上面的蛮专业的.我也觉得把资料存放在网络中永远不会丢.所以就出 ...
- Ruby file操作cheatsheet
每次都要查,真是蛋疼,不如一次性总结一下,以后再不记得就来这里找好了. 以下代码中需要用到的文件名:filename = 'testfile.txt' 读取其中的全部内容:File.read(file ...
- 基于Ruby的Watir-WebDriver自动化测试框架
基于Ruby的watir-webdriver自动化测试方案与实施(五) 基于Ruby的watir-webdriver自动化测试方案与实施(四) 基于Ruby的watir-webdriver自动化测试方 ...
- Ruby 文件目录操作(实例讲解更易懂)
IO 操作 $stdout [4] pry(main)> $stdout.print "Output to $stdout.\n" Output to $stdout. =& ...
- ruby获取本机mac加密生成lisence文件,客户端根据lisence许可调用主程序
需求: 提取客户本机Mac地址,生成Md5值.(客户使用,提供给厂商) 对该Md5值进行加密,生成lisence.txt文件.(厂商生成) 获取当前目录的lisence文件,解密,如果解密后与加密之前 ...
- Ruby学习之文件的写入和读取
Ruby 提供了一整套 I/O 相关的方法,在内核(Kernel)模块中实现,所有的 I/O 方法派生自 IO 类,类 IO 提供了所有基础的方法,比如 read. write. gets. puts ...
- 【Linux】一步一步学Linux——pwd命令(19)
00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 pwd命令是print working directory ...
- docker $PWD路径_Docker安装Jenkins+Shell脚本自动化部署项目
本文同名博客老炮说Java:https://www.laopaojava.com/,每天更新Spring/SpringMvc/SpringBoot/实战项目等文章资料 Sentinel+Nacos 是 ...
- linux 命令:pwd详解
pwd的功能是打印当前工作目录的名字 先看一下帮助文档:命令是help pwd pwd: pwd [-LP]打印当前工作目录的名字.选项:-L 打印 $PWD 变量的值,如果它命名了当前的工作目录-P ...
最新文章
- [01]EXTJS4.0的概述和HELLOWORD程序
- Nginx 负载均衡 - linux下nginx加载配置文件异常处理,提示invalid PID number in “/run/nginx.pid“问题解决
- 计算机应用在开始栏显示乱码,大神解决win10系统应用程序和开始菜单出现乱码的详细方案...
- 10.8-全栈Java笔记:序列化/反序列化的步骤和实例
- Shell脚本监控CPU、内存和硬盘利用率
- 台式电脑怎么截屏_台式电脑怎么使用无线网卡
- go 变量大写_和我一起学Go系列:Go基本语法概览
- python list拆分_python里如何把一个list分成两个
- 10个前端经常遇到的问题解决方案
- 晶振为什么不封装进芯片内部?
- ckPlayer播放器嵌入页面时报错CKobject is not defined解决方案
- Java全栈工程师必备技能_一个优秀的“全栈工程师”要具备哪些素质呢?
- 算法工程师的职业发展前景思考和总结
- 使用Unity3D引擎制作塔防类游戏(一)
- OpenCASCADE:OCCT应用框架OCAF之XML支持
- 网红奶茶品牌茶颜悦色,开业仅半小时就停业,黄牛价200元一杯
- DHCP,服务器,汇聚层三层交换机,网关
- 为什么要研究引起潜在大流行病的病原体?
- Java--敲重点!JDK1.8 HashMap特性及底层数组+单链表+红黑树知识(建议收藏)
- 【论文阅读】Learning Deep Features for Discriminative Localization
热门文章
- 1到3岁宝宝如何选择玩具
- 【面试题】面试题Redis
- 头歌--C++ 面向对象 - STL 的应用
- (although at least one Creator exiceParam` (although at leists): no String-argument constructor/fact
- 合肥 python 培训
- 数据库实验 统计查询和组合查询
- vector sort 出现异常处理--std::sort(_RanIt,_RanIt,_Pr)
- java自动生成接口文档
- Reactive思考
- HDMI协议介绍(四)--Video