9 Contoh Bash Script untuk Memulai Anda di Linux
Jika Anda memulai dengan skrip Bash di Linux, memahami dasar-dasarnya akan membantu Anda. Itu adalah dasar dari pengetahuan yang lebih dalam dan keterampilan skrip yang lebih tinggi.
Ingat, Jadikan Skrip Anda Dapat Dieksekusi
Untuk shell untuk menjalankan skrip, skrip harus memiliki izin file yang dapat dieksekusi yang ditetapkan. Tanpa ini, skrip Anda hanyalah file teks. Dengan itu, itu masih file teks, tetapi shell tahu itu berisi instruksi dan akan mencoba mengeksekusinya ketika skrip diluncurkan.
Inti dari menulis skrip adalah bahwa skrip dijalankan, jadi langkah dasar pertama adalah mengetahui cara membiarkan Linux tahu bahwa skrip Anda harus dianggap dapat dieksekusi.
Perintah chmod memungkinkan kita mengatur izin file. Izin eksekusi dapat diatur dengan +x flag.
chmod +x script1.sh
Anda harus melakukan ini pada setiap skrip Anda. Ganti “script1.sh” dengan nama script.
1 Anda. Apa Baris Pertama yang Aneh itu?
Baris pertama skrip memberi tahu shell penerjemah mana yang harus dipanggil untuk menjalankan skrip itu. Baris pertama harus dimulai dengan shebang, “#!”, juga dikenal sebagai hashbang. "#!" memberi tahu shell bahwa baris ini berisi jalur dan nama penerjemah yang digunakan untuk menulis skrip.
Ini penting karena jika Anda telah menulis skrip untuk dijalankan di Bash, Anda tidak ingin skrip tersebut ditafsirkan oleh shell yang berbeda . Kemungkinan ada ketidaksesuaian. Bash—seperti kebanyakan shell—memiliki kekhasan sintaks dan fungsionalitasnya sendiri yang tidak dimiliki shell lain, atau akan diimplementasikan secara berbeda.
Saat Anda menjalankan skrip, shell saat ini membuka skrip dan menentukan shell atau juru bahasa mana yang harus digunakan untuk jalankan skrip itu. Kemudian meluncurkan shell itu dan meneruskan skrip ke sana.
#!/bin/bash echo Berjalan di $SHELL
Baris pertama skrip ini dapat dibaca sebagai "Gunakan juru bahasa yang terletak di /bin/bash untuk menjalankan skrip ini."
The hanya baris dalam skrip yang menulis nilai yang disimpan dalam variabel lingkungan $SHELL ke layar terminal. Ini menegaskan bahwa Bash digunakan untuk mengeksekusi script.
./script1.sh
Sebagai sedikit trik ruang tamu, kami dapat menunjukkan bahwa skrip diteruskan ke penerjemah mana pun yang kami pilih.
#!/bin/cat Semua baris teks diteruskan ke perintah cat dan dicetak di jendela terminal. Itu termasuk baris shebang.script2.sh
Script ini diluncurkan oleh shell saat ini dan diteruskan ke perintah cat. Perintah cat "menjalankan" script.
Menulis shebangs Anda seperti ini membuat asumsi bahwa Anda tahu di mana shell atau interpreter lain berada di mesin target. Dan 99% dari waktu, itu bagus. Tetapi beberapa orang suka melindungi taruhan mereka dan menulis shebangs mereka seperti ini:
#!/usr/bin/env bash echo Berjalan di $SHELLscript3.sh
Ketika skrip diluncurkan, shell mencari lokasi shell bernama. Jika shell kebetulan berada di lokasi yang tidak standar, jenis pendekatan ini dapat menghindari kesalahan "penerjemah yang buruk".
Jangan Dengar, Dia Berbohong!
Di Linux, selalu ada lebih dari satu cara untuk menguliti kucing atau membuktikan sebagai penulis salah. Agar benar-benar faktual, ada cara untuk menjalankan skrip tanpa shebang, dan tanpa membuatnya dapat dieksekusi.
Jika Anda meluncurkan shell yang ingin Anda jalankan skripnya dan meneruskan skrip sebagai parameter baris perintah, shell akan diluncurkan dan dijalankan skrip— apakah itu dapat dieksekusi atau tidak. Karena Anda memilih shell pada baris perintah, tidak perlu untuk shebang.
Ini adalah keseluruhan skrip:
echo "Saya telah dieksekusi oleh" $SHELL
Kami akan menggunakan ls untuk melihat bahwa skrip tersebut benar-benar tidak dapat dieksekusi dan diluncurkan Bash dengan nama skrip:
lsbash script4.sh
Ada juga cara agar skrip dijalankan oleh shell saat ini, bukan shell yang diluncurkan khusus untuk mengeksekusi skrip. Jika Anda menggunakan perintah sumber, yang dapat disingkat menjadi satu periode ".", skrip Anda dieksekusi oleh shell.
Anda saat ini, untuk menjalankan skrip tanpa shebang, tanpa izin file yang dapat dieksekusi, dan tanpa meluncurkan shell lain, Anda dapat menggunakan salah satu dari perintah ini:
source script4.sh. script4.sh
Meskipun ini mungkin, ini tidak direkomendasikan sebagai solusi umum. Ada kekurangannya.
Jika sebuah skrip tidak mengandung shebang, Anda tidak dapat membedakan untuk shell mana skrip itu ditulis. Apakah Anda akan mengingatnya dalam waktu satu tahun? Dan tanpa izin eksekusi yang ditetapkan pada skrip, perintah ls tidak akan mengidentifikasinya sebagai file yang dapat dieksekusi, juga tidak akan menggunakan warna untuk membedakan skrip dari file teks biasa.
RELATED:Command Lines: Mengapa Orang Masih Bermasalah Dengan Mereka ?
2. Mencetak Teks
Menulis teks ke terminal adalah persyaratan umum. Sedikit masukan visual sangat membantu.
Untuk pesan sederhana, perintah echo sudah cukup. Ini memungkinkan beberapa pemformatan teks dan memungkinkan Anda bekerja dengan variabel juga.
#!/bin/bash echo Ini adalah string sederhana. echo "Ini adalah string yang berisi `tanda kutip tunggal` sehingga dibungkus dengan tanda kutip ganda." echo "Ini mencetak nama pengguna:" $USER echo -e "Opsi -e memungkinkan kita menggunakannperintah pemformatannuntuk membagi string."./script5.sh
Perintah printf memberi kita lebih banyak fleksibilitas dan kemampuan pemformatan yang lebih baik termasuk konversi angka .
Script ini mencetak angka yang sama menggunakan tiga basis numerik yang berbeda. Versi heksadesimal juga diformat untuk dicetak dalam huruf besar, dengan nol di depan dan lebar tiga digit.
#!/bin/bash printf "Desimal: %d, Oktal: %o, Heksadesimal: %03Xn" 32 32 32 ./script6.sh
Perhatikan bahwa tidak seperti echo, Anda harus memberi tahu printf untuk memulai baris baru dengan token “n” token.
3. Membuat dan Menggunakan Variables
Variables memungkinkan Anda untuk menyimpan nilai di dalam program Anda dan untuk memanipulasi serta menggunakannya. Anda dapat membuat variabel Anda sendiri atau menggunakan variabel lingkungan untuk nilai sistem.
#!/bin/bash millennium_text="Tahun sejak milenium:" current_time=$( date `+%H:%M:%S` ) todays_date=$ ( date `+%F` ) year=$( date `+%Y` ) echo "Waktu sekarang:" $current_time echo "Tanggal hari ini:" $todays_date years_since_Y2K=$(( year - 2000 )) echo $millennium_text $years_since_Y2K
Script ini membuat variabel string yang disebut millennium_text. Ini memegang sebaris teks.
It kemudian membuat tiga variabel numerik.
Variabel current_time diinisialisasi ke waktu skrip dieksekusi.Variabel todays_date diatur ke tanggal skrip dijalankan.Variabel tahun memegang tahun berjalan.
Untuk mengakses nilai yang disimpan dalam variabel, awali namanya dengan tanda dolar “$.”
./script7.sh
Script mencetak waktu dan tanggal, lalu menghitung berapa tahun telah berlalu sejak milenium, dan menyimpannya di tahun_since_Y2K variable.
Akhirnya, ia mencetak string yang terkandung dalam variabel millennium_text dan nilai numerik yang disimpan dalam years_since_Y2K.
RELATED:How to Work with Variables in Bash
4. Menangani Input Pengguna
Untuk mengizinkan pengguna memasukkan nilai yang akan digunakan skrip, Anda harus dapat menangkap input keyboard pengguna. Perintah baca Bash memungkinkan ut untuk melakukan hal itu. Berikut adalah contoh sederhana.
#!/bin/bash echo "Masukkan angka dan tekan "Enter"" read user_number1; echo "Masukkan nomor lain dan tekan "Enter"" read user_number2; printf "Anda memasukkan: %d dan %dn" $user_number1 $user_number2 printf "Dijumlahkan keduanya menghasilkan: %dn" $(( user_number1 + user_number2))
Script meminta dua angka. Mereka dibaca dari keyboard dan disimpan dalam dua variabel, user_number1 dan user_number2 .
Script mencetak angka ke jendela terminal, menambahkannya bersama-sama, dan mencetak total.
./script8.sh
Kita dapat menggabungkan perintah ke dalam perintah baca menggunakan opsi -p (prompt).
#!/bin/bash read -p "Masukkan angka dan tekan "Enter" " user_number1; read -p "Masukkan nomor lain dan tekan "Enter" " user_number2; printf "Anda memasukkan: %d dan %dn" $user_number1 $user_number2 printf "Dijumlahkan keduanya membuat: %dn" $(( user_number1 + user_number2))
Ini membuat semuanya lebih rapi dan lebih mudah dibaca. Skrip yang mudah dibaca juga lebih mudah untuk di-debug.
./script9.sh
Skrip berperilaku sedikit berbeda sekarang. Input pengguna berada di baris yang sama dengan prompt.
Untuk menangkap input keyboard tanpa menggemakannya ke jendela terminal, gunakan opsi -s (diam).
#!/bin/bash read -s -p "Masukkan rahasia Anda PIN dan tekan "Enter" " secret_PIN; printf "nShhh ... itu %dn" $secret_PIN./script10.sh
Nilai input ditangkap dan disimpan dalam variabel yang disebut secret_PIN , tetapi tidak digaungkan ke layar saat pengguna mengetiknya. Apa yang Anda lakukan dengannya setelah itu terserah Anda.
5. Menerima Parameters
Terkadang lebih mudah menerima input pengguna sebagai parameter baris perintah daripada membiarkan skrip menunggu input. Melewati nilai ke skrip itu mudah. Mereka dapat direferensikan di dalam skrip seolah-olah mereka adalah variabel lain.
Parameter pertama menjadi variabel $1, parameter kedua menjadi variabel $2, dan seterusnya. Variabel $0 selalu memegang nama skrip, dan variabel $# menyimpan jumlah parameter yang disediakan pada baris perintah. Variabel $@ adalah string yang berisi semua parameter baris perintah.
#!/bin/bash printf "Skrip ini disebut: %sn" $0 printf "Anda menggunakan %d parameter baris perintahn" $# # loop melalui variabel untuk param di "$@"; do echo "$param" done echo "Parameter 2 was:" $2
Script ini menggunakan $0 dan $# untuk mencetak beberapa informasi. kemudian menggunakan ?@ untuk mengulang semua parameter baris perintah. Ini menggunakan $2 untuk menunjukkan cara mengakses satu parameter tertentu value.
./script11.sh
Membungkus beberapa kata dalam tanda kutip “"” menggabungkannya menjadi satu parameter.
6. Membaca Data Dari File
Mengetahui cara membaca data dari file adalah keterampilan yang bagus untuk dimiliki. Kita bisa melakukannya di Bash dengan while loop.
#!/bin/bash LineCount=0 while IFS=`` read -r LinefromFile || [[ -n "${LinefromFile}" ]]; do ((LineCount++)) echo "Membaca baris $LineCount: ${LinefromFile}" done < "$1"
Kami meneruskan nama file yang ingin diproses skrip sebagai parameter baris perintah. Ini akan menjadi satu-satunya parameter, jadi di dalam skrip $1 akan menyimpan nama file. Kami mengarahkan file itu ke while loop.
RELATEDCara Memproses File Baris demi Baris di Bash Linux Script
Perulangan while menyetel pemisah bidang internal ke string kosong, menggunakan penetapan IFS=``. Ini mencegah perintah baca dari pemisahan baris pada spasi putih. Hanya carriage return di akhir baris yang dianggap sebagai akhir sebenarnya dari baris.
The [[ -n "${LinefromFile}" ]] klausa melayani kemungkinan bahwa baris terakhir dalam file tidak berakhir dengan kereta kembali. Meskipun tidak, baris terakhir tersebut akan ditangani dengan benar dan diperlakukan sebagai baris reguler yang sesuai dengan POSIX.
./script12.sh twinkle.txt
7. Menggunakan Tes Bersyarat
Jika Anda ingin skrip Anda melakukan tindakan yang berbeda untuk kondisi yang berbeda, Anda perlu melakukan tes bersyarat. Sintaks pengujian kurung ganda memberikan—pada awalnya—jumlah opsi yang luar biasa.
#!/bin/bash price=$1 if [[ price -ge 15 ]]; lalu gema "Terlalu mahal." else echo "Beli!" fi
Bash menyediakan seluruh rangkaian operator perbandingan yang memungkinkan Anda menentukan hal-hal seperti apakah file ada, apakah Anda dapat membaca darinya, apakah Anda dapat menulis ke dalamnya, dan apakah direktori ada.
Ini juga memiliki tes numerik untuk sama dengan -qe, lebih besar dari -gt, lebih kecil dari atau sama dengan -le, dan seterusnya, meskipun Anda juga dapat menggunakan == yang sudah dikenal, >= ,
Itulah berita seputar 9 Contoh Bash Script untuk Memulai Anda di Linux, semoga bermanfaat. Disadur dari HowToGeek.com.