3
下面的Ruby代码的预期操作如下:改变的行为得到,从命令行读出时,在红宝石
- 写入ARGV [0],名为在命令行上的文件,以老
- ,直到用户提供了输入
- 删除临时文件,
创建该文件
当我设置旧的等于ARGV [0](也是hello.c)时,fp被分配到hello.c的第一行,代码突破循环。
我如何运行它:
[email protected] live$ ruby test.rb hello.c
hello.c
#include <stdio.h>
[email protected] live$
代码:
#!/usr/bin/env ruby
require 'timeout'
old = ARGV[0].chomp
puts old # sanity check
# old = 'hello.c'
new = 'tmp_' + old
`cp #{old} #{new}`
fp = nil
loop do
begin
Timeout::timeout(3) { fp = gets }
puts fp # sanity check
break if (fp)
rescue Timeout::Error
# ...
end
end
`rm #{new}`
我不明白为什么在命令行中读取会比硬编码的文件名有什么不同。
我很感激您可以给予的任何帮助。谢谢。
我应该深入挖掘。这解决了它,谢谢。 – user992236