到目前为止,这是我的完整代码:
if ARGV.size == 0
print "Set a library name as parameter"
else
dir = ARGV[0]
begin
Dir.chdir "#{dir}"
rescue
print "No such library"
else
filelist = Dir.glob "*.rb"
outfile = "result"
i = 0
while i < filelist.size do
filename = filelist[i]
output = load "./#{filename}"
if output == 1
File.open(outfile, 'a+') { |file| file.write("#{filename}")}
end
i += 1
end
end
end
我尝试投放的下标可以包含以下内容:print "1"
或者:print "0"
。
我想写一个&#34;结果&#34;文件
filename :: OK
如果是print "1"
,则
filename :: WRONG
如果是print "2"
。
我的问题是output
总是等于true
而不是1
或0
。如何将下标STDOUT
重定向到output
变量?
答案 0 :(得分:0)
这应该给你输出:
getSupportFragmentManager().findFragmentById(<container-res-id>);
注意:它返回一个字符串,但您要将输出与数字进行比较。进行必要的转换。
答案 1 :(得分:0)
您可以使用反引号(``)来运行脚本并将其输出捕获为字符串。
`ruby somescript.rb`
# "1"
实际上与load
一起使用的hackier方法是在加载脚本之前覆盖$stdout
。
require 'stringio'
output = StringIO.new
stdout = $stdout
begin
$stdout = output
load 'somescript.rb'
ensure
$stdout = stdout
end
output.string
# "1"