Perintah source berfungsi untuk membaca dan mengeksekusi perintah dari file yang ditentukan di lingkungan shell saat ini. Perintah source berguna untuk memuat fungsi, variabel, dan file konfigurasi ke dalam skrip shell.

source adalah shell bawaan di Bash dan shell populer lainnya yang digunakan dalam sistem operasi Linux dan UNIX. Perilakunya mungkin sedikit berbeda dari shell ke shell.

Sintaks Perintah Source

Sintaks untuk perintah sumber adalah sebagai berikut:

source FILENAME [ARGUMENTS]
. FILENAME [ARGUMENTS]
  • source dan . (titik) adalah perintah yang sama.
  • Jika FILENAMEbukan path lengkap ke file, perintah akan mencari file di direktori yang ditentukan dalam environment variable $PATH. Jika file tidak ditemukan di $PATH, maka perintah akan mencari file di direktori kerja saat ini.
  • Jika ada ARGUMEN yang diberikan, mereka akan menjadi parameter posisi untuk FILENAME.
  • Jika FILENAME ada, perintah source akan keluar dengan kode 0, namun jika file tidak ditemukan, output akan muncul 1.

Contoh Perintah Source

Pada bagian ini, kita akan melihat beberapa contoh dasar tentang cara menggunakan perintah source.

Function Source

Jika Anda memiliki skrip shell yang menggunakan functions yang sama, Anda dapat mengekstraknya dalam file terpisah dan kemudian source file itu di skrip Anda.

Dalam contoh ini, kami akan membuat file yang menyertakan fungsi bash yang memeriksa apakah pengguna yang menjalankan skrip adalah user root atau bukan. Jika yang mengeksekusi perintah tersebut bukan root, maka output akan menampilkan pesan dan keluar dari skrip.

check_root () {
  if [[ $EUID -ne 0 ]]; then
    echo "Script harus dijalankan oleh root" 
    exit 1
  fi
}

Sekarang di setiap skrip Anda yang perlu dijalankan hanya oleh pengguna root, cukup source file functions.sh dan panggil function menggunakan:

#!/usr/bin/env bash

source functions.sh
check_root

echo "Saya User root"

Jika Anda menjalankan skrip di atas sebagai pengguna non-root, skrip akan mencetak “Script harus dijalankan oleh root” dan mengakhiri perintah.

Keuntungan dari pendekatan ini, skrip Anda akan lebih kecil dan lebih mudah dibaca, Anda dapat menggunakan kembali file fungsi yang sama kapan pun diperlukan dan jika perlu memodifikasi fungsi Anda hanya akan mengedit satu file.

File Konfigurasi Bash

Dengan perintah source, Anda juga dapat membaca variabel dari file. Variabel harus ditetapkan menggunakan sintaks Bash, VARIABLE=VALUE.

Mari kita buat file konfigurasi pengujian:

sudo nano config.sh
VAR1="foo"
VAR2="bar"

Di skrip bash, Anda gunakan perintah source untuk membaca file konfigurasi:

#!/usr/bin/env bash

source config.sh

echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"

Jika Anda menjalankan skrip, hasilnya akan terlihat seperti ini:

VAR1 is foo
VAR2 is bar

Kesimpulan

Dalam panduan ini, Anda telah belajar cara menggunakan perintah source builtin di skrip shell.