Я не на 100% уверен в вашем случае использования, но могу сказать вам следующее:
system
запустит команду оболочки и вернет успех / неудачу, но не сохранит результаты:
irb(main):001:0> x = system('uname')
Linux
=> true
irb(main):002:0> x
=> true
Backticks запустит команду оболочки и сохранит вывод, но не требует слова system
:
irb(main):003:0> x = `uname`
=> "Linux\n"
irb(main):004:0> x
=> "Linux\n"
(Если вы добавите «system» внутри обратных ссылок, он будет запускать «system» в командной строке; обычно это не то, что вам нужно)
Только обратные метки ничего не делают внутри строк:
irb(main):005:0> "I am `uname`"
=> "I am `uname`"
Но они будут расширены с #{}
внутри двойных кавычек:
irb(main):006:0> "I am #{`uname`}"
=> "I am Linux\n"
Но обычно лучше сначала выполнить команду, проверить на наличие ошибок, а затем добавить ее в строку, например
result = `uname`
# Check for errors here
output = "context #{result} more context"