Dalam perintah berikut, kucing mengambil konten di sini-doc dan mengalihkannya ke file bernama conf:
cat > conf << EOF
var1="cat"
var2="dog"
var3="hamster"
EOF
Bagaimana cara memahami urutan perintah di sini? Apakah bash
proses pertama yang lainnya (di sini-doc bagian) dan sebagai langkah terakhir terlihat > conf
bagian?
sumber
cat > file_name << blah
ini bahwa sebelum mengeksekusicat
para stdout dari shell terhubung ke file bernamafile_name
dan kemudian stdin dari shell terhubung ke sini-doc ?open
dipanggil sebelumnyadup2
.Baiklah, mari kita cari tahu:
Dang. Saya kira itu harus melakukan
>"$file"
bagian itu dulu. Tetapi bagaimana jika ...?... tidak ada kesalahan ...?
Seperti yang terlihat, pesanan penting.
sumber
Ketika
bash
membuat proses untuk dijalankancat
, itu terbukaconf
untuk menulis pada deskriptor file 1 dan membuka file sementara (untuk dokumen-di sini) untuk dibaca pada deskriptor file 0, sebelumexec
ing program. Dalam hal ini, tidak masalah urutan tindakan itu terjadi.Urutan menjadi signifikan ketika deskriptor file dipindahkan, misalnya dengan
2>&1
.sumber