Cara Membuat Script Shell Sederhana di Linux
Membuat skrip shell adalah salah satu keterampilan paling penting yang harus dimiliki pengguna Linux. Skrip Shell memainkan peran besar dalam mengotomatiskan tugas berulang yang jika tidak dilakukan akan membosankan jika dijalankan baris demi baris.
Dalam tutorial ini, kami menyoroti beberapa operasi skrip shell dasar yang harus dimiliki setiap pengguna Linux.
1. Buat Skrip Shell Sederhana
Skrip shell adalah file yang terdiri dari teks ASCII. Kita akan mulai dengan membuat skrip shell sederhana, dan untuk melakukan ini, kita akan menggunakan editor teks. Ada cukup banyak editor teks, baik berbasis baris perintah maupun berbasis GUI. Untuk panduan ini, kami akan menggunakan editor vim.
Kita akan memulai dengan membuat skrip sederhana yang menampilkan “Halo dunia ” saat dijalankan.
vim hello.sh
Rekatkan konten berikut ke dalam file dan simpan.
#!/bin/bash
Print Hello world message
echo "Hello World!"
Mari kita bahas skrip shell baris demi baris.
- Baris pertama –
#!/bin/bash
– dikenal sebagai header shebang. Ini adalah konstruksi khusus yang menunjukkan program apa yang akan digunakan untuk menafsirkan skrip. Dalam hal ini, ini adalah shell bash yang ditandai dengan /bin/bash. Ada bahasa skrip lain seperti Python yang dilambangkan dengan#!/usr/bin/python3
dan Perl yang header shebangnya dilambangkan dengan#!/usr/bin/Perl
. - Baris kedua adalah komentar. Komentar adalah pernyataan yang menjelaskan apa yang dilakukan dan tidak dilakukan skrip shell saat skrip dijalankan. Komentar selalu diawali dengan tanda pagar
#
. - Baris terakhir adalah perintah yang mencetak pesan ‘Halo Dunia’ di terminal.
Langkah selanjutnya adalah membuat skrip dapat dieksekusi dengan memberikan izin eksekusi menggunakan perintah chmod seperti yang ditunjukkan.
chmod +x hello.sh
Terakhir, jalankan skrip shell menggunakan salah satu perintah:
bash hello.sh
OR
./hello.sh
2. Menggunakan Pernyataan Bersyarat untuk Mengeksekusi Kode
Seperti bahasa pemrograman lainnya, pernyataan kondisional digunakan dalam skrip bash untuk membuat keputusan, dengan hanya sedikit variasi dalam sintaksisnya. Kita akan membahas pernyataan kondisional if, if-else, dan elif.
Contoh Pernyataan if Saja
Pernyataan if dapat digunakan untuk menguji satu atau beberapa kondisi. Kita akan memulai dengan penggunaan dasar pernyataan if untuk menguji suatu kondisi. Pernyataan if ditentukan oleh blok if ... fi
.
if command
then
statement
fi
Mari kita lihat skrip shell di bawah ini.
#!/bin/bash
echo 'Enter the score'
read x
if [[ $x == 70 ]]; then
echo 'Good job!'
fi
Skrip shell di atas meminta pengguna untuk memberikan skor yang kemudian disimpan dalam variabel x. Jika skornya sesuai dengan 70, skrip akan mengembalikan keluaran “Kerja bagus! ”. Operator perbandingan ==
digunakan untuk menguji apakah skor yang dimasukkan, yang disimpan dalam variabel x, setara dengan 100.
Operator perbandingan lain yang dapat Anda gunakan meliputi:
-eq
– Sama dengan-ne
– Tidak sama dengan-lt
– Kurang dari-le
– Kurang dari atau sama dengan-lt
– Kurang dari-ge
– Lebih besar dari atau sama dengan
Misalnya, blok jika-pernyataan di bawah akan mencetak ‘Bekerja Lebih Keras’ jika skor masukan bernilai kurang dari 50.
if [[ $x -lt 50 ]]; then
echo 'Work Harder!'
fi
Contoh Pernyataan if-else
Untuk situasi di mana Anda mempunyai 2 kemungkinan hasil: – apakah ini atau itu – pernyataan if-else sangat berguna.
if command
then
statement1
else
statement2
fi
Skrip di bawah membaca skor masukan dan memeriksa apakah lebih besar atau sama dengan 70.
Jika skornya lebih besar atau sama dengan 70, Anda akan mendapatkan pesan ‘Kerja bagus, Anda lulus!’. Namun, jika skornya kurang dari 70, output ‘Anda gagal’ akan dicetak.
#!/bin/bash
echo 'Enter the score'
read x
if [[ $x -ge 70 ]]; then
echo 'Great job, You passed!'
else
echo 'You failed'
fi
Contoh Pernyataan if-elif-else
Dalam skenario ketika terdapat beberapa kondisi dan hasil yang berbeda, pernyataan if-elif-else digunakan. Pernyataan ini mengambil format berikut.
if condition1
then
statement1
elif condition2
then
statement2
else
statement3
fi
Misalnya, kami memiliki skrip lotere yang memeriksa apakah nomor yang dimasukkan adalah 90, 60 atau 30.
#!/bin/bash
echo 'Enter the score'
read x
if [[ $x -eq 90 ]];
then
echo “You have won the First Prize”
elif [[ $x -eq 60 ]];
then
echo “You have won the Second Prize”
elif [[ $x -eq 30 ]];
then
echo “You have won the Second Prize”
else
echo “Please try again”
fi
3. Menggunakan Pernyataan If dengan Logika AND
Anda dapat menggunakan pernyataan if bersama operator logika AND untuk menjalankan tugas jika dua kondisi terpenuhi. Operator &&
digunakan untuk menunjukkan logika AND.
#!/bin/bash
echo 'Please Enter your user_id'
read user_id
echo 'Please Enter your tag_no'
read tag_id
if [[ ($user_id == “tecmint” && $tag_id -eq 3990) ]];
then
echo “Login successful”
else
echo “Login failure”
fi
5. Menggunakan Pernyataan If dengan Logika OR
Saat menggunakan logika OR, yang diwakili oleh simbol ||
, salah satu kondisi harus dipenuhi oleh skrip untuk memberikan hasil yang diharapkan.
#!/bin/bash
echo 'Please enter a random number'
read number
if [[ (number -eq 55 || number -eq 80) ]];
then
echo 'Congratulations! You’ve won'
else
echo 'Sorry, try again'
fi
Gunakan Konstruksi Perulangan
loop Bash memungkinkan pengguna melakukan serangkaian tugas hingga hasil tertentu tercapai. Ini berguna dalam melakukan tugas yang berulang. Di bagian ini, kita akan melihat beberapa loop yang juga Anda temukan dalam bahasa pemrograman lain.
Lingkaran sementara
Ini adalah salah satu loop termudah untuk dikerjakan. Sintaksnya cukup sederhana:
while <some test>
do
commands
done
Perulangan while di bawah mencantumkan semua angka dari 1 hingga 10 saat dijalankan.
#!/bin/bash
A simple while loop
counter=1
while [ $counter -le 10 ]
do
echo $counter
((counter++))
done
Mari kita bahas perulangan while:
Variabel counter diinisialisasi ke 1. Dan meskipun variabelnya kurang dari atau sama dengan 10, nilai penghitung akan bertambah hingga kondisinya terpenuhi. Baris echo $counter mencetak semua angka dari 1 hingga 10.
Untuk lingkaran
Seperti perulangan while, perulangan for digunakan untuk mengeksekusi kode secara berulang. Yaitu. ulangi eksekusi kode sebanyak mungkin yang ditentukan oleh pengguna.
Sintaksnya adalah:
for var in 1 2 3 4 5 N
do
command1
command2
done
perulangan for di bawah ini mengulangi 1 hingga 10 dan memproses nilainya di layar.
Cara yang lebih baik untuk mencapai hal ini adalah dengan mendefinisikan rentang menggunakan tanda kurung kurawal ganda { }
seperti yang ditunjukkan daripada mengetikkan semua angka.
#!/bin/bash
Specify range in a for loop
for num in {1..10}
do
echo $num
done
Parameter Posisi Bash
Parameter posisi adalah variabel khusus yang direferensikan dalam skrip ketika nilai diteruskan pada shell tetapi tidak dapat ditetapkan. Parameter posisi dijalankan dari $0 $1 $2 $3 ...... hingga $9. Di luar nilai $9, parameter harus diapit tanda kurung kurawal misalnya $ {10}, $ {11} … dan seterusnya.
Saat menjalankan skrip, parameter posisi pertama yaitu $0 mengambil nama skrip shell. Parameter $1 mengambil variabel pertama yang diteruskan pada terminal, $2 mengambil variabel kedua, $3 mengambil variabel ketiga dan seterusnya.
Mari buat skrip test.sh seperti yang ditunjukkan.
#!/bin/bash
echo "The name of the script is: " $0
echo "My first name is: " $1
echo "My second name is: " $2
Selanjutnya, jalankan skrip dan berikan nama depan dan kedua sebagai argumen:
bash test.sh James Kiarie
Dari outputnya terlihat bahwa variabel pertama yang dicetak adalah nama skrip shell, dalam hal ini test.sh. Setelah itu, nama-nama tersebut dicetak sesuai dengan parameter posisi yang ditentukan dalam skrip shell.
Parameter posisi berguna karena membantu Anda menyesuaikan data yang dimasukkan alih-alih secara eksplisit menetapkan nilai ke variabel.
Kode Keluar Perintah Shell
Mari kita mulai dengan menjawab pertanyaan sederhana, Apa itu kode keluar?
Setiap perintah yang dijalankan pada shell oleh pengguna atau skrip shell memiliki status keluar. Status keluar adalah bilangan bulat.
Status keluar 0 menyiratkan bahwa perintah berhasil dijalankan tanpa kesalahan apa pun. Angka antara 1 hingga 255 menunjukkan bahwa perintah gagal atau tidak berhasil dijalankan.
Untuk mengetahui status keluar suatu perintah, gunakan variabel Shell $?
.
Status keluar 1 menunjukkan kesalahan umum atau kesalahan apa pun yang tidak diperbolehkan seperti mengedit file tanpa izin sudo.
Status keluar 2 poin karena penggunaan perintah atau variabel shell bawaan yang salah.
Status keluar 127 menunjuk ke perintah ilegal yang biasanya menghasilkan kesalahan 'perintah tidak ditemukan'.
Memproses Output Perintah Shell dalam Skrip
Dalam skrip bash, Anda dapat menyimpan output perintah dalam variabel untuk digunakan di masa mendatang. Ini juga disebut sebagai substitusi perintah shell dan dapat dicapai dengan cara berikut.
variable=$(command)
OR
variable=$(/path/to/command)
OR
variable=$(command argument 1 argument 2 ...)
Misalnya, Anda dapat menyimpan perintah tanggal dalam variabel bernama hari ini dan memanggil skrip shell untuk menampilkan tanggal saat ini.
#!/bin/bash
today=$(date)
echo “Today is $today”
Mari kita ambil contoh lain. Misalkan Anda ingin mencari pengguna login yang valid di sistem Linux Anda. Bagaimana Anda melakukannya? Pertama, daftar semua pengguna (baik pengguna sistem, proses, dan login) disimpan dalam file /etc/passwd.
Untuk melihat file, Anda perlu menggunakan perintah cat. Namun, untuk mempersempit pengguna yang login, gunakan perintah grep untuk mencari pengguna dengan atribut /bin/bash dan gunakan perintah cut -c 1-10 sebagai ditampilkan untuk menampilkan 10 karakter pertama dari nama.
Kami telah menyimpan perintah cat ke variabel login_users.
#!/bin/bash
login_users=$(cat /etc/passwd | grep /bin/bash | cut -c 1-10)
echo 'This is the list of login users:
echo $login_users
Ini mengakhiri tutorial kita tentang cara membuat skrip shell sederhana. Kami harap Anda menganggap ini berharga.