Как использовать 'ruby -e' для запуска многострочной программы? - PullRequest
0 голосов
/ 05 мая 2019

Я хочу выполнить программу с помощью 'ruby -e', но она выполняет программу, если она в одной строке, но не выполняется, если она состоит из нескольких строк, и выдает ошибку. Например,

>ruby -e "puts 'rajagopalan'"
=>rajagopalan

но

>ruby -e "a=[1,2,3,4,5]
a.each do |i|
   puts i
end
"

выдает ошибку "a.each do | i | Синтаксис команды неверен. «

Может ли кто-нибудь подсказать мне, как выполнить мультилиний с помощью ruby -e

Я прикрепил изображение здесь enter image description here

Ответы [ 3 ]

0 голосов
/ 05 мая 2019

Попробуйте:

>ruby -e "a=[1,2,3,4,5]; a.each do |i| puts i; end"

Основная идея, использовать точку с запятой везде, где потребуется новая строка.

0 голосов
/ 05 мая 2019

Это не имеет ничего общего с Ruby.Вам необходимо прочитать руководство по эмулятору терминала и вашей оболочке и выяснить, как экранировать символы новой строки.

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

0 голосов
/ 05 мая 2019

вы можете попробовать here document в вашей команде оболочки:

ruby <<END
 a=[1,2,3,4,5]
 a.each do |i|
   puts i
 end
END

Надеюсь, это поможет ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...