Rubyでは、次のようなバッククォートを使用してシェルコマンドを実行できることを知っています。
`ls -l | grep drw-`
ただし、私はいくつかのかなり長いシェルコマンドを必要とするスクリプトに取り組んでおり、読みやすくするために、複数の行に分割できるようにしたいと考えています。文字列のようにプラス記号を挿入することはできないと思いますが、長いコマンド文字列を複数行のソースコードにきれいに分割する他の方法のコマンド連結手法があるかどうか知りたいです。
\
:でキャリッジリターンをエスケープできます
`ls -l \
| grep drw-`
補間を使用できます。
`#{"ls -l" +
"| grep drw-"}`
または、コマンドを変数に入れて、変数を補間します。
cmd = "ls -l" +
"| grep drw-"
`#{cmd}`
必要に応じて、などのシェルコマンドを実行する別の方法を使用することもできますが、system
その動作はバックティックとまったく同じではないことに注意してください。
使用%x
:
%x( ls -l |
grep drw- )
別:
%x(
echo a
echo b
echo c
)
# => "a\nb\nc\n"
明示的にこれを行うこともできます\n
:
cmd_str = "ls -l\n" +
"| grep drw-"
...次に、結合された文字列をバックティック内に配置します。
`#{cmd_str}`