以下のコマンドのマイナス(-)とEOCの意味を知りたいのですが。 Perlのようないくつかの言語では、文字の任意の組み合わせ(EOFにバインドされていない)を選択できることを知っていますが、それはここに当てはまりますか?そして、マイナスは私にとって完全な謎です。よろしくお願いします!
ftp -v -n $SERVER >> $LOG_FILE <<-EOC
user $USERNAME $PWD
binary
cd $DIR1
mkdir $dir_lock
get $FILE
bye
EOC
承認された回答:
これがヒアドキュメントです。
command <<-word
here-document contents
word
word
ヒアドキュメントを区切るために使用されるのは任意です。大文字を使用するのが一般的ですが、必須ではありません。
-コード>
<<-word
で ヒアドキュメントのコンテンツの各行の先頭からタブが削除されるという効果があります。
cat <<-SERVICE_ANNOUNCEMENT
hello
world
SERVICE_ANNOUNCEMENT
上記のヒアドキュメントが各行の先頭にリテラルタブを使用して記述されている場合、出力になります
hello
world
ではなく
hello
world
終了区切り文字の前のタブも<<-
で削除されます (ただし、-
なしではありません ):
cat <<-SERVICE_ANNOUNCEMENT
hello
world
SERVICE_ANNOUNCEMENT
(同じ出力)