Ruby: работа в командной строке с ruby -e

Ruby можно вызывать из shell используя опцию -e, не указывая файл с кодом, а прямо из командной строки. По сути вызов irb из консоли. Очень крутая штука. Если строк несколько – то делить их нужно через “;”.

~$ ruby -e 'puts 1+1'
2
~$ ruby -e 'puts 1+1;puts 1+2'
2
3

Так же Ruby в командной режиме может использоваться по аналогии с pipeline с опцией -n – берем STDIN как входящий поток для кода и применяем его для каждой строки STDIN, пока их не останется (аналог bash while read | do). Каждая строка хранится в специальной переменной $_.

~$ cat sw
apple
orange
melon
tomato
~$ cat sw | ruby -ne 'puts $_ if $_.include?("tomat")' 
tomato
~$ cat sw | ruby -ne 'puts $_ if $_.include?("e")' 
apple
orange
melon

 

 

Leave a Reply