GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menulis skrip bash atau mengotomatiskan vi terbuka dan mengedit dokumen?

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).


Linux
  1. Di Bash, Kapan Alias ​​​​Kapan Skrip, Dan Kapan Menulis Fungsi?

  2. Bagaimana Cara Men-debug Skrip Bash?

  3. Bagaimana Cara Mendapatkan Alamat Ip Sendiri Dan Menyimpannya Ke Variabel Dalam Script Shell?

  1. Tujuan .bashrc Dan Bagaimana Cara Kerjanya?

  2. Bagaimana Menghentikan Skrip Loop Bash Di Terminal?

  3. Bagaimana Cara Mendaftar Deskriptor File Terbuka (dan File yang Mereka Rujuk) Di Sesi Bash Saat Ini?

  1. Bagaimana Cara Membaca Seluruh Script Shell Sebelum Mengeksekusinya?

  2. Bash + Bagaimana Cara Keluar Dari Skrip Sekunder Dan Dari Skrip Utama Pada Kedua Kalinya?

  3. Bagaimana cara membuka, membaca, dan menulis dari port serial di C?