Cara Menulis dan Menggunakan Fungsi dan Pustaka Shell Kustom


Di Linux, skrip shell membantu kita dalam berbagai cara termasuk melakukan atau bahkan mengotomatisasi tugas administrasi sistem tertentu, membuat alat baris perintah sederhana dan banyak lagi.

Dalam panduan ini, kami akan menunjukkan kepada pengguna Linux baru tempat menyimpan skrip shell khusus dengan andal, menjelaskan cara menulis fungsi dan pustaka shell khusus, menggunakan fungsi dari pustaka di skrip lain.

Tempat Menyimpan Skrip Shell

Untuk menjalankan skrip Anda tanpa mengetikkan jalur lengkap/absolut, skrip tersebut harus disimpan di salah satu direktori dalam variabel lingkungan ` PATH.

Untuk memeriksa ` PATH Anda, berikan perintah di bawah ini:

echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Biasanya, jika direktori bin ada di direktori home pengguna, direktori tersebut secara otomatis disertakan dalam ` PATH miliknya. Anda dapat menyimpan skrip shell Anda di sini.

Oleh karena itu, buatlah direktori bin (yang juga dapat menyimpan skrip Perl, Awk atau Python atau program lainnya):

mkdir ~/bin

Selanjutnya, buat direktori bernama lib (kependekan dari perpustakaan) tempat Anda menyimpan perpustakaan Anda sendiri. Anda juga dapat menyimpan perpustakaan untuk bahasa lain seperti C, Python, dan sebagainya di dalamnya. Di bawahnya, buat direktori lain bernama sh; ini khususnya akan menyimpan perpustakaan shell Anda:

mkdir -p ~/lib/sh 

Buat Fungsi dan Perpustakaan Shell Anda Sendiri

Fungsi shell adalah sekelompok perintah yang melakukan tugas khusus dalam skrip. Cara kerjanya mirip dengan prosedur, subrutin, dan fungsi dalam bahasa pemrograman lain.

Sintaks untuk menulis suatu fungsi adalah:

function_name() { list of commands }

Misalnya, Anda dapat menulis fungsi dalam skrip untuk menampilkan tanggal sebagai berikut:

showDATE() {date;}

Setiap kali Anda ingin menampilkan tanggal, cukup aktifkan fungsi di atas menggunakan namanya:

showDATE

Perpustakaan shell hanyalah sebuah skrip shell, namun, Anda dapat menulis perpustakaan untuk hanya menyimpan fungsi yang nantinya dapat Anda panggil dari skrip shell lainnya.

Di bawah ini adalah contoh perpustakaan bernama libMYFUNCS.sh di direktori ~/lib/sh saya dengan lebih banyak contoh fungsi:

#!/bin/bash 

#Function to clearly list directories in PATH 
showPATH() { 
        oldifs="$IFS"   #store old internal field separator
        IFS=:              #specify a new internal field separator
        for DIR in $PATH ;  do echo $DIR ;  done
        IFS="$oldifs"    #restore old internal field separator
}

#Function to show logged user
showUSERS() {
        echo -e “Below are the user logged on the system:\n”
        w
}

#Print a user’s details 
printUSERDETS() {
        oldifs="$IFS"    #store old internal field separator
        IFS=:                 #specify a new internal field separator
        read -p "Enter user name to be searched:" uname   #read username
        echo ""
       #read and store from a here string values into variables using : as  a  field delimiter
    read -r username pass uid gid comments homedir shell <<< "$(cat /etc/passwd | grep   "^$uname")"
       #print out captured values
        echo  -e "Username is            : $username\n"
        echo  -e "User's ID                 : $uid\n"
        echo  -e "User's GID              : $gid\n"
        echo  -e "User's Comments    : $comments\n"
        echo  -e "User's Home Dir     : $homedir\n"
        echo  -e "User's Shell             : $shell\n"
        IFS="$oldifs"         #store old internal field separator
}

Simpan file dan buat skrip dapat dieksekusi.

Cara Memanggil Fungsi Dari Perpustakaan

Untuk menggunakan suatu fungsi di lib, pertama-tama Anda harus memasukkan lib ke dalam skrip shell tempat fungsi tersebut akan digunakan, dalam bentuk di bawah ini:

./path/to/lib
OR
source /path/to/lib

Jadi Anda akan menggunakan fungsi printUSERDETS dari lib ~/lib/sh/libMYFUNCS.sh di skrip lain seperti yang ditunjukkan di bawah ini.

Anda tidak perlu menulis kode lain dalam skrip ini untuk mencetak detail pengguna tertentu, cukup panggil fungsi yang ada.

Buka file baru dengan nama test.sh:

#!/bin/bash 

#include lib
.  ~/lib/sh/libMYFUNCS.sh

#use function from lib
printUSERDETS

#exit script
exit 0

Simpan, lalu buat skrip dapat dieksekusi dan jalankan:

chmod 755 test.sh
./test.sh 

Dalam artikel ini, kami menunjukkan kepada Anda tempat menyimpan skrip shell dengan andal, cara menulis fungsi dan pustaka shell Anda sendiri, menjalankan fungsi dari pustaka dalam skrip shell normal.

Selanjutnya, kami akan menjelaskan cara langsung mengonfigurasi Vim sebagai IDE untuk skrip Bash. Sampai saat itu tiba, selalu tetap terhubung dengan TecMint dan bagikan juga pemikiran Anda tentang panduan ini melalui formulir umpan balik di bawah.