DEV Community

Khoerunnisa
Khoerunnisa

Posted on

Improving Command-line Productivity

Menulis Skrip Bash Sederhana

  • Tujuan Setelah menyelesaikan bagian ini, kita seharusnya dapat mengotomatiskan urutan perintah dengan menulis skrip shell sederhana.

Membuat dan Menjalankan Skrip Bash Shell
Banyak tugas administrasi sistem yang sederhana dan umum dilakukan dengan menggunakan alat bantu baris perintah. Tugas-tugas dengan kompleksitas yang lebih besar sering kali membutuhkan rangkaian beberapa perintah yang memberikan hasil di antara perintah-perintah tersebut. Dengan menggunakan lingkungan shell Bash dan fitur skrip, perintah-perintah Linux digabungkan ke dalam skrip shell untuk menyelesaikan masalah dunia nyata yang berulang dan sulit dengan mudah.
Dalam bentuknya yang paling sederhana, skrip shell Bash adalah file yang dapat dieksekusi yang berisi daftar perintah, dan mungkin dengan logika pemrograman untuk mengontrol pengambilan keputusan dalam keseluruhan tugas. Jika ditulis dengan baik, skrip shell adalah alat baris perintah yang kuat dengan sendirinya, dan dapat dimanfaatkan oleh skrip lain.
Kemahiran skrip shell sangat penting untuk administrasi sistem yang sukses dalam lingkungan operasional apa pun. Pengetahuan tentang skrip shell sangat penting dalam lingkungan perusahaan, di mana penggunaan skrip dapat meningkatkan efisiensi dan akurasi penyelesaian tugas rutin.
Kita dapat membuat skrip shell Bash dengan membuka file kosong baru di editor teks. Meskipun Anda dapat menggunakan editor teks apa pun, editor tingkat lanjut, seperti vim atau emacs, memahami sintaksis shell Bash dan dapat memberikan penyorotan dengan color-coded. Penyorotan ini membantu mengidentifikasi kesalahan umum seperti sintaks yang tidak tepat, tanda kutip yang tidak berpasangan, tanda kurung yang tidak tertutup, tanda kurung, dan tanda kurung, dan masih banyak lagi.

Menentukan Penerjemah Perintah
Baris pertama skrip dimulai dengan notasi '#!', biasanya disebut sebagai sh-bang atau she-bang, dari nama dua karakter, sharp dan bang. Notasi angka ajaib dua-byte khusus ini menunjukkan skrip interpretatif; sintaks yang mengikuti notasi tersebut adalah nama file yang memenuhi syarat untuk penerjemah perintah yang benar yang diperlukan untuk memproses baris skrip ini. Untuk memahami bagaimana angka ajaib mengindikasikan jenis file di Linux, lihat halaman man file(1) dan magic(5). Untuk berkas skrip yang menggunakan sintaksis skrip Bash, baris pertama skrip shell dimulai sebagai berikut:

Image description

Menjalankan Skrip Bash Shell
Skrip shell yang telah selesai dibuat harus dapat dieksekusi agar dapat dijalankan sebagai perintah biasa. Gunakan perintah chmod untuk menambahkan izin eksekusi, mungkin bersamaan dengan perintah chown untuk mengubah kepemilikan berkas skrip. Berikan izin eksekusi hanya untuk pengguna skrip yang dituju.
Jika Anda menempatkan skrip pada salah satu direktori yang terdaftar pada variabel lingkungan PATH, maka Anda dapat memanggil skrip shell dengan menggunakan nama file saja seperti pada perintah lainnya. Shell menggunakan perintah pertama yang ditemukannya dengan nama file tersebut; hindari menggunakan nama perintah yang sudah ada untuk nama file skrip shell Anda. Sebagai alternatif, Anda dapat memanggil skrip shell dengan memasukkan nama path ke skrip pada baris perintah. Perintah which, diikuti dengan nama file skrip yang dapat dieksekusi, menampilkan nama path ke perintah yang akan dieksekusi.

Image description

Mengutip Karakter Khusus
Sejumlah karakter dan kata memiliki arti khusus pada shell Bash. Namun, terkadang Anda ingin menggunakan karakter-karakter ini untuk nilai harfiahnya, dan bukan untuk arti khususnya. Untuk melakukan hal ini, gunakan salah satu dari tiga alat untuk menghapus dari arti khusus: karakter garis miring (), tanda kutip tunggal (''), atau tanda kutip ganda ("").
Karakter escape backslash akan menghapus makna khusus dari karakter tunggal yang langsung mengikutinya. Sebagai contoh, untuk menampilkan string literal # not a coment dengan perintah echo, tanda # tidak boleh ditafsirkan oleh Bash sebagai memiliki arti khusus. Tempatkan karakter garis miring di depan tanda #.

Image description

Saat Anda perlu mengeluarkan lebih dari satu karakter dalam string teks, gunakan karakter escape beberapa kali atau gunakan tanda kutip tunggal (''). Tanda kutip tunggal mempertahankan arti harfiah dari semua karakter yang diapitnya. Perhatikan karakter escape dan tanda kutip tunggal dalam tindakan:

Image description
Gunakan tanda petik ganda untuk menekan globbing dan ekspansi shell, tetapi tetap mengizinkan substitusi perintah dan variabel. Substitusi variabel secara konseptual identik dengan substitusi perintah, tetapi dapat menggunakan sintaks brace opsional. Perhatikan contoh berbagai bentuk penggunaan tanda kutip di bawah ini.
Gunakan tanda petik tunggal untuk mengartikan semua teks secara harfiah. Selain menekan globbing dan ekspansi shell, tanda petik mengarahkan shell untuk menekan perintah dan substitusi variabel. Tanda tanya (?) adalah karakter meta yang juga membutuhkan perlindungan dari perluasan.

Image description
Menyediakan Output Dari Skrip Shell
Perintah echo menampilkan teks sembarang dengan mengoper teks sebagai argumen ke perintah. Secara default, teks ditampilkan pada output standar (STDOUT), tetapi juga dapat diarahkan ke kesalahan standar (STDERR ) menggunakan pengalihan output. Pada skrip Bash sederhana berikut ini, perintah echo menampilkan pesan "Hello, world" ke STDOUT.

Image description

Catatan
Pengguna ini dapat menjalankan hello pada prompt karena direktori ~/bin(/home/user/bin) ada di variabel PATH pengguna dan skrip hello di dalamnya dapat dieksekusi. Shell secara otomatis menemukan skrip di sana, selama tidak ada file yang dapat dieksekusi bernama hello pada direktori manapun yang terdaftar sebelum /home/user/bin pada PATH.

Perintah echo banyak digunakan dalam skrip shell untuk menampilkan pesan informasi atau kesalahan. Pesan-pesan ini dapat menjadi indikator yang berguna untuk mengetahui kemajuan skrip dan dapat diarahkan ke output standar, kesalahan standar, atau dialihkan ke file log untuk diarsipkan. Ketika menampilkan pesan kesalahan, merupakan praktik yang baik untuk mengarahkannya ke STDERR agar lebih mudah untuk membedakan pesan kesalahan dari pesan status normal.

Image description
Perintah echo juga dapat sangat membantu ketika mencoba men-debug skrip shell yang bermasalah. Penambahan pernyataan echo pada bagian skrip yang tidak berperilaku seperti yang diharapkan dapat membantu memperjelas perintah yang sedang dieksekusi, serta nilai variabel yang dipanggil.

Top comments (0)