Saya ingin tahu apa artinya minus (-) dan EOC pada perintah di bawah ini. Saya tahu beberapa bahasa seperti Perl memungkinkan Anda memilih kombinasi karakter apa pun (tidak terikat pada EOF) tetapi apakah itu masalahnya di sini? Dan minus adalah misteri yang lengkap bagi saya. Terima kasih sebelumnya!
ftp -v -n $SERVER >> $LOG_FILE <<-EOC
user $USERNAME $PWD
binary
cd $DIR1
mkdir $dir_lock
get $FILE
bye
EOC
Jawaban yang Diterima:
Itu dokumen di sini.
command <<-word
here-document contents
word
word
digunakan untuk membatasi dokumen di sini adalah sewenang-wenang, itu umum, tetapi tidak perlu, untuk menggunakan kata huruf besar.
-
dalam <<-word
memiliki efek bahwa tab akan dihapus dari awal setiap baris dalam konten dokumen di sini.
cat <<-SERVICE_ANNOUNCEMENT
hello
world
SERVICE_ANNOUNCEMENT
Jika dokumen di sini di atas ditulis dengan tab literal di awal setiap baris, itu akan menghasilkan output
hello
world
daripada
hello
world
Tab sebelum pembatas akhir juga dihilangkan dengan <<-
(tetapi bukan tanpa -
):
cat <<-SERVICE_ANNOUNCEMENT
hello
world
SERVICE_ANNOUNCEMENT
(keluaran yang sama)