Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何使用参数调用外部脚本?_Ruby - Fatal编程技术网

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

Ruby 如何使用参数调用外部脚本?,ruby,Ruby,我有一个Ruby脚本,当执行抛出错误时,它应该调用各种脚本。如何调用具有两个参数的脚本 目前我正在使用下面的代码,但我还需要向script.sh发送两个参数: my_script = "script.sh" %x( #{my_script}) 你差点就搞定了,只需添加参数: my_script = "script.sh" %x( #{my_script} #{arg1} #{arg2}) 您可能还需要检查返回代码: if $? == 0 puts "script executed su

我有一个Ruby脚本,当执行抛出错误时,它应该调用各种脚本。如何调用具有两个参数的脚本

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

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

你差点就搞定了,只需添加参数:

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

你差点就搞定了,只需添加参数:

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

dimid的方法在最简单的情况下有效,但在边缘情况下不起作用

您需要对参数进行shell转义

require "shellwords"

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

dimid的方法在最简单的情况下有效,但在边缘情况下不起作用

您需要对参数进行shell转义

require "shellwords"

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

非常感谢,非常有帮助!非常感谢,非常有帮助!