2016-05-05 2 views
0

У меня есть скрипт Ruby, который должен вызывать различные скрипты, когда выполнение вызывает ошибку. Как я могу вызвать скрипт с двумя аргументами?Как вызвать внешний скрипт с аргументами?

На данный момент я использую этот код, но мне нужно также послать два аргумента script.sh:

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

ответ

2

Вы почти понял это, просто добавьте Params:

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 
+0

Большое спасибо, очень полезно! – Meeshoo

1

dimid была бы работать в самых простых случаях, но это Wi я не буду работать в случаях с краями.

Вам необходимо отключить аргументы оболочки.

require "shellwords" 

"command %s %s" % args.map{|arg| Shellwords.escape(arg)} 
Смежные вопросы