Вот сидел я тут и разбирался с zentest и в его коде я узнал (я конечно, мало чего еще знаю про ruby) прикольную штуку. Если записать команду между ``, то запустится процесс и вернет весь output. Например:
irb(main):001:0> volume_info = `vol`
=> " Volume in drive C is vista\n Volume Serial Number is E486-92B6\n"
irb(main):002:0>
Даже не хочется приводить пример сколько строк кода это займет, например на C#. (Против C# я ничего не имею %).
5 comments:
If you carefully read this http://rubylearning.com/satishtalim/tutorial.html from the beginning you would be aware about this really nice feature much earlier :)
nice link ;), thanks.
вообще-то это штука работает в любой консоли линукса :)
причем здесь любая консоль линукса? в Java и C# ты же не можешь так просто это выполнить. А если тебя смущает irb>, то это просто консоль интерактивного интепритатора руби. Я так могу писать в любом месте своих программ.
Я хотел сказать, что bash поддерживает такую штуку и ты можешь в программе на bash так записать... И в любом другом интерпретаторе в линуксе.
В винде (в BAT'никах) так не получится, потому что cmd такого не понимает :)
IIRC, ruby - это скриптовый язык и не удивительно, что все воможности скриптовых языков интегрированы в синтаксис :)
А синтаксис Java или C# естественно не поддерживает `` :) Но я могу одной строчкой выполнить команду, записав результат в переменную окружения и второй строкой прочитать значения этой переменной... Опять же в линуксе:) В винде спора нет - прийдется получать стандартный поток вывода и читать из него.
Post a Comment