这不适用于红宝石,我不明白为什么?
#!/usr/bin/env ruby
exec "sort data.txt > data.sort"
data.txt是逗号分隔文件。无论如何..如果我尝试在shell中执行该行,它的工作没有问题。
当我尝试从我的脚本运行此脚本时,我得到一个空文件。
答案 0 :(得分:0)
你试过吗
%x(sort data.txt > data.sort)
答案 1 :(得分:0)
这不是一个真正的答案,但我想分享一下,你对exec的原始用法实际上对我有用。这就是我设置它的方式。
data.txt中
"1,2,3,4,5,6,7,8"
sort.rb(我不知道你的排序是什么,所以我只是写出相同的数据)
File.open(ARGV[0]){|f| puts f.read}
irb session
irb(main):001:0> exec "sort data.txt > data.sort"
当我在irb中运行它时,我确实得到了一个data.sort输出文件,它按预期包含“1,2,3,4,5,6,7,8”。我可以通过irb或其他ruby文件运行相同的exec行,每次都得到带有数据的输出文件。
我在32位Windows XP系统上运行Ruby 1.8.6。