这是我编写的 ruby 脚本,用于更改 Ubuntu 上的时区配置。我用jruby(在 JVM 中运行的 Ruby 解释器)运行它。
require 'java'
if ARGV.length == 0
puts "Usage: jruby change_timezone.rb America/Toronto"
exit
end
old_zone = File.read("../../../etc/timezone")
puts old_zone
time1 = Time.now
puts "Current Time:"+time1.localtime.to_s
new_zone = ARGV[0]
open('../../../etc/timezone','w') do |f|
f.puts new_zone.to_s
f.close
end
new_zone = File.read("../../../etc/timezone")
puts new_zone
time2 = Time.now
puts "Updated Time:"+time2.localtime.to_s
Run Code Online (Sandbox Code Playgroud)
它确实正确更改了配置文件。但是,脚本的输出与预期不同。
假设时区的默认值为America/Toronto
。当我运行命令时jruby change_timezone.rb Asia/Chongqing
,输出是:
America/Toronto
Current Time:Thu Jul 07 14:43:23 -0400 2011
Asia/Chongqing
Updated Time:Thu Jul 07 14:43:23 -0400 2011 …
Run Code Online (Sandbox Code Playgroud)