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.