【Ruby 】脚本和自动化语言 常用的内容

1️⃣常用内置模块

模块 用途
File 文件操作
FileUtils 文件和目录操作(复制、移动、删除、创建目录)
Dir 目录遍历和操作
YAML 解析和写入 YAML 文件
JSON 解析和写入 JSON 文件
Set 集合操作(去重、交集、并集)

2️⃣ Ruby 基础语法

内容 示例 说明
变量 name = "Ruby" 动态类型,无需声明类型
数组 arr = [1,2,3] 支持遍历、映射等操作
哈希 h = {a:1, b:2} 类似 Python dict
条件 if a > 1 ... elsif ... else ... end 多分支条件
循环 loop do ... end / while / for ... in ... end 无限循环 / 条件循环 / 遍历
方法 def add(a,b); a+b; end 使用 def 定义方法,end 结束
`[1,2,3].each { x puts x}` 块(block)是 Ruby 的核心特性
字符串插值 "Hello #{name}" #{} 引入变量

3️⃣文件与目录操作

Ruby 自带 File 和 FileUtils 模块,常用操作:

操作 示例
读取文件 content = File.read('file.txt')
写入文件 `File.open('file.txt','w'){ f f.write("Hello")}`
判断文件存在 File.exist?('file.txt')
创建目录 Dir.mkdir('mydir')
遍历目录 Dir.glob('./**/*.rb')
移动/重命名 FileUtils.mv('old.rb','new.rb')
复制文件 FileUtils.cp('a.txt','b.txt')
删除文件/目录 FileUtils.rm('file.txt') / FileUtils.rm_rf('dir')

4️⃣ 文本处理与正则

替换字符串:

bash 复制代码
str = "old_name"
str.gsub!(/old_name/, "new_name") # 原地修改

匹配字符串:

bash 复制代码
if str.match?(/\A[a-z]+(_[a-z]+)*\z/)
  puts "蛇形命名"
end

扫描内容:

bash 复制代码
matches = str.scan(/pattern/)

5️⃣ YAML / JSON 操作

处理 Flutter 插件脚本常用 YAML:

bash 复制代码
require 'yaml'

data = YAML.load_file('pubspec.yaml')
data['name'] = 'new_plugin_name'
File.open('pubspec.yaml','w'){|f| f.write(data.to_yaml)}

处理 JSON:

bash 复制代码
require 'json'
json_data = JSON.parse(File.read('data.json'))

6️⃣💡 总结

Ruby 非常适合做 自动化脚本、文件批量处理、文本替换

Flutter 插件的 update_plugin_name.rb 就用到:

文件操作:File, FileUtils

YAML 解析:YAML

字符串/正则替换:gsub!, match?

循环遍历目录:Dir.glob

相关推荐
开开心心_Every4 分钟前
支持自定义名单的实用随机抽签工具
运维·服务器·pdf·电脑·excel·启发式算法·宽度优先
Harm灬小海6 分钟前
【云计算学习之路】企业常用服务搭建:构建Apache WEB服务器
运维·服务器·学习·云计算·apache
大江东去浪淘尽千古风流人物11 分钟前
【Polaris-VIO】Docker 镜像跨硬件分发的隐藏陷阱:AVX-512、-march=native 与 CPU 指令集解耦边界
运维·docker·容器·slam·vio·avx-512
工业机器人销售服务11 分钟前
攻克大型钣金搬运难题:伯朗特高负载机型完成重型工件精准移栽,保障作业全程安全
机器人·自动化
十子木13 分钟前
SSH 反向端口转发 (Remote Port Forwarding)
运维·ssh
AI云原生16 分钟前
远程控制软件进入协作阶段:ToDesk、向日葵、AnyDesk、RustDesk怎么选?
运维·服务器·网络·windows·docker·云原生·开源软件
测试员周周7 小时前
【Appium 系列】第16节-WebView-H5上下文切换 — 混合应用的自动化难点
运维·开发语言·人工智能·功能测试·appium·自动化·测试用例
北京耐用通信10 小时前
全域适配工业场景耐达讯自动化Modbus TCP 转 PROFIBUS 网关轻松实现以太网与现场总线互通
网络·人工智能·网络协议·自动化·信息与通信
在角落发呆11 小时前
Linux转发配置:解锁网络互联的核心密码
linux·运维·网络
裴东青12 小时前
10-实战:RuoYi-Cloud的自动化发布
运维·ci/cd·自动化