vi
menurut definisi adalah editor visual.
Dalam hal ini, mungkin lebih baik menggunakan cara lain.
Jika Anda hanya ingin menambahkan baris tersebut, lakukan sesuatu seperti:
cat >> filename.sh <<'EOF'
export GRADLE_HOME=/opt/gradle/gradle-5.2.1
export PATH=${GRADLE_HOME}/bin:${PATH}
EOF
Ini juga akan berfungsi jika file belum ada.
Jika Anda ingin baris tersebut ditambahkan di awal, Anda dapat menggunakan ed
yang merupakan editor berorientasi garis:
ed filename.sh <<'EOF'
1i
export GRADLE_HOME=/opt/gradle/gradle-5.2.1
export PATH=${GRADLE_HOME}/bin:${PATH}
.
w
q
EOF
Ini menginstruksikan ed
untuk menyisipkan baris pada baris 1; titik soliter .
pada baris menunjukkan akhir input, jadi penyisipan berhenti di sana. Akhirnya file tersebut ditulis (w
) dan sesi edit berhenti (q
).
Jika Anda bersikeras menggunakan ed
bahkan jika file tersebut belum ada (dalam hal ini saya akan menggunakan cat
contoh di atas), Anda dapat menggunakan ini:
ed filename.sh <<'EOF'
i
export GRADLE_HOME=/opt/gradle/gradle-5.2.1
export PATH=${GRADLE_HOME}/bin:${PATH}
.
w filename.sh
q
EOF
Perbedaan utamanya adalah Anda tidak meneruskan nomor baris dengan i
masukkan perintah, karena belum ada baris; dan Anda meneruskan nama file ke w
tulis perintah yang merupakan file baru.
sed
juga dapat digunakan, tetapi untuk tugas seperti itu saya menemukan ed
lebih mudah digunakan (dan membaca apa yang terjadi).