文書化と入力リダイレクトは次のとおりです。

文書化と入力リダイレクトは次のとおりです。

次のコマンドは何をしますか?特に、-入力リダイレクトの役割を理解していません。

 cat <<-EOF | command $argument
    first option


    second option
    EOF

-入力リダイレクトに必須ですか?

答え1

からman bash

リダイレクト演算子が<<-の場合、入力行と区切り文字を含む行からすべての先行タブ文字が削除されます。これにより、シェルスクリプトのドキュメントを自然にインデントできます。

$ cat <<-EOF
    foo
    bar
    EOF
foo
bar

答え2

ここにあるドキュメントに関するあなたの質問に関して、上記のChrisの答えに何かを追加したいと思います。

cat - filename <<-EOF
    foo
    bar
    EOF

上記のコードを見ると2があります-。どちらも異なる目的を持っています。 1)-EOF区切り記号で先行タブ文字を切り取ります。

2) cat - filename:デフォルトでは、最初の標準入力内容(区切り文字が見つかるまで)+ファイル名の内容を印刷します。 catは、-標準入力とファイルの内容の順序を制御するために特別にこれを提供します。上記の場合、変更コマンドはcat filename -ファイル名と標準入力の内容を印刷します(区切り文字が見つかるまで)。

関連情報