1
我正嘗試使用命名管道與廚師的shell_out!在將文件管道傳送到另一個進程之前,在文件的開頭和結尾添加行和前綴。當我嘗試執行代碼時,Ruby總是遇到錯誤,但是錯誤似乎是sh不是Ruby的。下面是我的代碼的一個基本變體,它會導致相同的錯誤以及不會失敗的等效命令。思考?說明?固定?在Ruby exec語句中使用命名管道
[1] pry(main)> a = "cat <(echo foo) <(cat file) <(echo bar) | less"
=> "cat <(echo foo) <(cat file) <(echo bar) | less"
[2] pry(main)> `#{a}`
sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `cat <(echo foo) <(cat file) <(echo bar) | less'
=> ""
[3] pry(main)> b = "echo 'foo\nfile contents\nbar' | less"
=> "echo 'foo\nfile contnents\nbar' | less"
[4] pry(main)> `#{b}`
=> "foo\nfile contents\nbar\n"
[5] pry(main)> exit
[[email protected] ~]$ cat <(echo foo) <(cat file) <(echo bar) | less
[[email protected] ~]$ cat <(echo foo) <(cat file) <(echo bar) | less
foo
file contents
bar
(END)