Meningkatkan Produktivitas Comand-Line
Tags: ramadhanbersamaredhat
Published: 2024-04-08 01:38:26

**Menulis Bash Scripts Sederhana**

**Menulis dan Menjalankan Bash Shell Scripts**
Menggunakan Bash shell environment dan scripting features,perintah Linux digabungkan menjadi shell scripts untuk dengan mudah memecahkan masalah dunia nyata yang berulang dan sulit.

Dalam bentuknya yang paling sederhana, Bash shell script 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, shell script merupakan alat baris perintah yang kuat, dan dapat dimanfaatkan oleh skrip lain.

Kemahiran skrip Shell sangat penting untuk keberhasilan administrasi sistem di 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.

Anda dapat membuat Bash shell script dengan membuka file kosong baru di editor teks. Meskipun Anda dapat menggunakan editor teks apa pun, editor tingkat lanjut, seperti **vim** atau **emacs** , memahami Bash shell syntax  dan dapat memberikan _color-coded_ highlighting. Highlighting ini membantu mengidentifikasi kesalahan umum seperti sintaksis yang tidak tepat, tanda kutip tidak berpasangan, tanda kurung tidak tertutup, kurung kurawal, dan tanda kurung, dan banyak lagi.

**Menentukan Penerjemah Perintah**
Baris pertama suatu naskah diawali dengan notasi ' #!', biasa disebut _sh-bang_ atau _she-bang_, dari nama kedua karakter tersebut, _sharp_ dan _bang_. Notasi dua byte khusus ini m_agic number_ menunjukkan skrip interpretatif; syntax yang mengikuti notasi adalah nama file yang sepenuhnya memenuhi syarat untuk _command interpreter_ kebutuhan yang benar untuk memproses baris skrip ini. Untuk file skrip yang menggunakan syntax skrip Bash, baris pertama skrip shell dimulai sebagai berikut:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iqynha8rbom6mfxks351.png)

**Menjalankan Bash Shell Script**
Shell script yang telah selesai harus dapat dieksekusi agar dapat dijalankan sebagai perintah biasa. Gunakan perintah **chmod** untuk menambahkan izin eksekusi, mungkin bersamaan dengan perintah **chown** untuk mengubah kepemilikan file skrip. Berikan izin eksekusi hanya untuk pengguna skrip yang dituju.

Jika Anda menempatkan skrip di salah satu direktori yang tercantum dalam variabel lingkungan shell _PATH_, maka Anda dapat memanggil shell script menggunakan nama file saja seperti pada perintah lainnya. Shell menggunakan perintah pertama yang ditemukannya dengan nama file tersebut; hindari menggunakan nama perintah yang ada untuk nama file shell script Anda. Alternatifnya, Anda dapat memanggil shell script dengan memasukkan nama jalur ke skrip pada baris perintah. Perintah which, diikuti dengan nama file skrip yang dapat dieksekusi, menampilkan nama jalur ke perintah yang akan dijalankan.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q6095nzoosnm2iqjfjzw.png)

**Mengutip Karakter Khusus**
Sejumlah karakter dan kata memiliki arti khusus pada Bash shell. Namun, terkadang Anda ingin menggunakan karakter ini untuk nilai literalnya, bukan untuk arti khususnya. Untuk melakukan ini, gunakan salah satu dari tiga alat untuk menghapus (atau escape) arti khusus: garis miring terbalik (\), tanda kutip tunggal (''), atau tanda kutip ganda ("").

Karakter escape backslash menghilangkan arti khusus dari karakter tunggal yang mengikutinya. Misalnya, untuk menampilkan string literal _# not a comment_ dengan perintah **echo** , tanda # tidak boleh ditafsirkan oleh Bash sebagai memiliki arti khusus. Tempatkan karakter garis miring terbalik di depan tanda #.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h654grkurzgzz5q3y2gi.png)

Saat Anda perlu meng-escape lebih dari satu karakter dalam string teks, gunakan karakter escape beberapa kali atau gunakan tanda kutip tunggal (''). Kutipan tunggal mempertahankan arti literal dari semua karakter yang dicantumkannya. Amati tindakan karakter escape dan tanda kutip tunggal:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u6quk35nnas3ghxpiq66.png)

Gunakan tanda kutip ganda untuk menekan ekspansi globbing dan shell, namun tetap mengizinkan substitusi perintah dan variabel. Substitusi variabel secara konseptual identik dengan substitusi perintah, tetapi dapat menggunakan sintaks kurung kurawal opsional. Perhatikan contoh berbagai bentuk penggunaan tanda kutip di bawah ini.

Gunakan tanda kutip tunggal untuk menafsirkan seluruh teks secara harfiah. Selain menekan ekspansi globbing dan shell, kutipan mengarahkan shell untuk juga menekan substitusi perintah dan variabel. Tanda tanya (?) adalah _meta-character_ tanda yang juga perlu dilindungi dari perluasan.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/prigtgizx9zq94p5voj0.png)

**Memberikan Output dari Shell Script**
Perintah **echo** menampilkan teks arbitrer dengan meneruskan teks tersebut sebagai argumen ke perintah. Secara default, teks ditampilkan standard output(STDOUT), tapi bisa juga ditujukan standard error (STDERR) menggunakan pengalihan keluaran. Dalam Bash script sederhana berikut, perintah echo menampilkan pesan " Hello, world" ke STDOUT.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wt7kzkgpdsm99aixw4bu.png)
**Catatan**
Pengguna ini dapat langsung menjalankan _hello_ saat diminta karena direktori ~/bin( /home/user/bin) berada dalam variabel pengguna PATH dan _hello_ skrip di dalamnya dapat dieksekusi. Shell secara otomatis menemukan skrip di sana, selama tidak ada file lain yang dapat dieksekusi yang dipanggil _hello_ di direktori mana pun yang terdaftar sebelumnya /home/user/bin di file PATH.

Perintah **echo** banyak digunakan dalam shell scripts untuk menampilkan pesan informasi atau kesalahan. Pesan-pesan ini dapat menjadi indikator yang berguna mengenai kemajuan skrip dan dapat diarahkan ke standard output, standard error, atau dialihkan ke file log untuk pengarsipan. Saat menampilkan pesan kesalahan, sebaiknya arahkan pesan tersebut ke STDERR agar lebih mudah membedakan pesan kesalahan dari pesan status normal.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ey4wmh0pnb9me1ixbgb4.png)

Perintah **echo** juga bisa sangat membantu ketika mencoba men-debug skrip shell yang bermasalah. Penambahan pernyataan **echo** ke bagian skrip yang tidak berfungsi seperti yang diharapkan dapat membantu memperjelas perintah yang dijalankan, serta nilai variabel yang dipanggil.