Я не получаю результаты от grep, когда я вызываю его с параметром, содержащим фигурные скобки, используя выражения `` или% x {} Руби.
Скажем, у меня есть эти файлы в пустой директории:
$ echo '**hello**' > hello.md
$ echo 'hello' > hello.txt
Если я хочу, чтобы результаты соответствовали только одному расширению, Ruby работает должным образом:
$ grep -rn hello . --include=*.txt
./hello.txt:1:hello
$ grep -rn hello . --include=*.md
./hello.md:1:**hello**
$ irb
ree-1.8.7-2011.03 :001 > `grep -rn hello . --include=*.txt`
=> "./hello.txt:1:hello\n"
ree-1.8.7-2011.03 :002 > %x{grep -rn hello . --include=*.md}
=> "./hello.md:1:**hello**\n"
ree-1.8.7-2011.03 :003 > exit
Но если я запрашиваю результаты, соответствующие любому расширению, с использованием синтаксиса фигурных скобок grep, результаты не приходятс Ruby:
$ grep -rn hello . --include=*.{txt,md}
./hello.txt:1:hello
./hello.md:1:**hello**
$ irb
ree-1.8.7-2011.03 :001 > `grep -rn hello . --include=*.{txt,md}`
=> ""
ree-1.8.7-2011.03 :002 > %x{grep -rn hello . --include=*.{txt,md}}
=> ""
Редактировать: эхо работает, но результаты команды все еще пусты:
ruby-1.9.2-p180 :004 > `echo grep -rn hello . --include=*.{txt,md}`
=> "grep -rn hello . --include=*.{txt,md}\n"
ruby-1.9.2-p180 :005 > `grep -rn hello . --include=*.{txt,md}`
=> ""
Как я могу отладить это и увидеть фактическую команду, которая выполняется?И как правильно выполнять системные команды с помощью фигурных скобок в параметрах из Ruby?