如何使用参数调用外部脚本?

时间:2016-05-05 17:29:30

标签: ruby

我有一个Ruby脚本,当执行引发错误时应调用各种脚本。如何调用带有两个参数的脚本?

目前我正在使用下面的代码,但我还需要向script.sh发送两个参数:

my_script = "script.sh"
%x( #{my_script})

2 个答案:

答案 0 :(得分:2)

你几乎想通了,只需添加参数:

my_script = "script.sh"
%x( #{my_script} #{arg1} #{arg2})

您可能还想查看返回代码:

if $? == 0
   puts "script executed successfully"
else
   puts "script returned an error, exit code: #{$?.to_s.split('exit ')[-1]}"
end

答案 1 :(得分:1)

dimid的方式适用于最简单的情况,但在边缘情况下不起作用。

你需要shell-escape参数。

require "shellwords"

"command %s %s" % args.map{|arg| Shellwords.escape(arg)}