我是 Ruby 新手,我正在编写一个执行以下操作的脚本:
- 接受命令行参数
- 根据指定的参数删除一些目录。
我想要它做什么:
./admin_bin -c
Removing files in /opt/sysnovo/tmp and /opt/sysnovo/data
我有这个工作!但是......它不是以红宝石的方式。
这是我的代码:
#!/usr/bin/env ruby
require 'rubygems'
require 'fileutils'
require 'optparse'
OptionParser.new do |o|
o.on('-c') { |b| $clear = b }
o.on('-h') { puts o; exit }
o.parse!
end
# Two directories we want to specify.
tmp_dir = "/opt/sysnovo/tmp"
data_dir = "/opt/sysnovo/data"
# push this value to a variable so we can evaluate it.
test = $clear
if "#{test}" == "true"
puts "Removing files in #{tmp_dir} and #{data_dir}"
FileUtils.rm_rf("#{tmp_dir}/.", secure: true)
FileUtils.rm_rf("#{data_dir}/.", secure: true)
else
puts "Not removing files."
end
如您所见,我将 $clear 设置为 #{test} 并基于此进行评估。我知道这是不正确的。这样做的正确方法是什么?稍后我将在此脚本中添加更多参数和功能。
PS我来自bash背景。