2行の長いパイプに好ましい構文

2行の長いパイプに好ましい構文

長いパイプを作成するとき、2行に分割する方がより明確になることがよくあります。

このように長いコマンドラインは次のとおりです。

ruby -run -e httpd -- -p 5000 . 2>&1 | tee >(grep -Fq 'WEBrick::HTTPServer#start' && open localhost:5000) 

それは次のように分けることができます:

ruby -run -e httpd -- -p 5000 . 2>&1 \
   | tee >(grep -Fq 'WEBrick::HTTPServer#start' && open localhost:5000) 

または:

ruby -run -e httpd -- -p 5000 . 2>&1 |
    tee >(grep -Fq 'WEBrick::HTTPServer#start' && open localhost:5000) 

簡単に言うと:

command1 \
    | command2

または:

command1 |
    command2

私はこれがスタイル(コメント)の問題かもしれないことを知っていますが、好む方法はありますか?それでは、その理由は何ですか?

ベストアンサー1

これが何をするかを自分に尋ねてください。

command1 \ 
   | command2

違いはわかりません。私もできませんが、シェルはできます。詳しく見ると、後ろにスペースがあります\。これにより、改行文字がエスケープされるのを防ぎます。

したがって、より安全な他のフォームを使用してください。ここでも同じエラーが表示されます(|この場合はスペースが後ろに表示されます)。しかし、エラーは発生しません。

command1 | 
    command2

おすすめ記事