Unix / Linux - Variabel Khusus

Halo teman-teman yang sedang belajar pemrograman! Saya sangat senang menjadi panduan Anda dalam perjalanan menarik ke dunia variabel khusus Unix dan Linux. Sebagai orang yang telah mengajar ilmu komputer selama tahun-tahun, saya bisa menjamin Anda bahwa menguasai konsep ini akan menjadi perubahan besar dalam petualangan pemrograman Anda. Jadi, mari kita masuk ke dalam!

Unix / Linux - Special Variables

Pengenalan Variabel Khusus

Sebelum kita masuk ke detail, mari kita mengerti apa itu variabel khusus. Dalam Unix dan Linux, variabel khusus adalah variabel yang sudah didefinisikan sebelumnya yang menyimpan informasi spesifik tentang lingkungan shell dan proses saat ini. Mereka seperti agen rahasia dunia shell, selalu siap dengan intelijen penting!

Argumen Baris Perintah

Apa Itu Argumen Baris Perintah?

Argumen baris perintah adalah informasi tambahan yang Anda berikan ke skrip saat Anda menjalankannya. Mereka seperti memberikan intruksi ke robot sebelum ia memulai tugasnya.

Mari kita lihat contoh sederhana:

#!/bin/bash
echo "Hello, $1!"

Jika kita simpan skrip ini sebagai greet.sh dan menjalankan dengan ./greet.sh Alice, ia akan menampilkan:

Hello, Alice!

Di sini, $1 adalah variabel khusus yang mewakili argumen baris perintah pertama.

Menggunakan Banyak Argumen

Kami tidak terbatas hanya pada satu argumen. Mari kita perluas skrip kita:

#!/bin/bash
echo "Hello, $1! Welcome to $2."

Sekarang, jika kita menjalankan ./greet.sh Alice Wonderland, kita mendapatkan:

Hello, Alice! Welcome to Wonderland.

Di sini, $1 mewakili "Alice" dan $2 mewakili "Wonderland".

Variabel $0

Ada variabel lain yang perlu disebutkan: $0. Ini mewakili nama skrip itu sendiri. Mari kita modifikasi skrip kita:

#!/bin/bash
echo "This script is called $0"
echo "Hello, $1! Welcome to $2."

Menjalankan ./greet.sh Alice Wonderland sekarang menampilkan:

This script is called ./greet.sh
Hello, Alice! Welcome to Wonderland.

Parameter Khusus $* dan $@

Sekarang, mari kita bicarakan tentang dua parameter khusus yang sangat berguna: $* dan $@. Mereka seperti pasangan dinamis argumen baris perintah!

Parameter $*

Parameter $* mewakili semua argumen baris perintah sebagai satu string. Itu seperti memasukkan semua argumen Anda dalam satu keranjang. mari kita lihat contohnya:

#!/bin/bash
echo "All arguments using \$*: $*"

Jika kita menjalankan skrip ini dengan ./args.sh apple banana cherry, kita mendapatkan:

All arguments using $*: apple banana cherry

Parameter $@

Parameter $@ hampir sama, tapi ia menganggap setiap argumen sebagai entitas terpisah. Itu seperti menjaga setiap argumen di dalam kotak kecilnya sendiri. Mari kita lihatnya dalam aksi:

#!/bin/bash
echo "All arguments using \$@:"
for arg in "$@"
do
echo $arg
done

Menjalankan ini dengan ./args.sh apple banana cherry memberikan:

All arguments using $@:
apple
banana
cherry

Perbedaan Antara $* dan $@

Anda mungkin bertanya-tanya, "Mereka tampak sama bagi saya!" Well, perbedaan itu tampak saat kita menggunakannya dalam tanda kutip ganda. Mari kita buat skrip untuk menunjukkan ini:

#!/bin/bash
echo "Using \$*:"
for arg in "$*"
do
echo $arg
done

echo "Using \$@:"
for arg in "$@"
do
echo $arg
done

Jika kita menjalankan ini dengan ./difference.sh "Hello World" OpenAI ChatGPT, kita mendapatkan:

Using $*:
Hello World OpenAI ChatGPT

Using $@:
Hello World
OpenAI
ChatGPT

Lihat perbedaannya? "$*" menganggap semua argumen sebagai satu string, sedangkan "$@" menjaga argumen individual.

Status Keluar

Terakhir tapi bukan paling kurang, mari kita bicarakan tentang status keluar. Dalam Unix dan Linux, setiap perintah mengembalikan status keluar saat itu selesai dieksekusi. Status ini adalah nomor antara 0 dan 255, di mana 0 biasanya berarti sukses, dan setiap nomor lain menunjukkan kesalahan.

Variabel $?

Status keluar perintah terakhir disimpan dalam variabel $?. Mari kita lihatnya dalam aksi:

#!/bin/bash
ls /nonexistent_directory
echo "Exit status of ls command: $?"

echo "Hello, World!"
echo "Exit status of echo command: $?"

Menjalankan skrip ini mungkin menampilkan:

ls: cannot access '/nonexistent_directory': No such file or directory
Exit status of ls command: 2
Hello, World!
Exit status of echo command: 0

Perintah ls gagal (status keluar 2), sedangkan perintah echo sukses (status keluar 0).

Menggunakan Status Keluar dalam Skrip

Kita dapat menggunakan status keluar untuk membuat keputusan dalam skrip kita. Mari kita lihat contohnya:

#!/bin/bash
ping -c 1 google.com > /dev/null

if [ $? -eq 0 ]
then
echo "Internet is working!"
else
echo "Internet is not working!"
fi

Skrip ini memanggil Google satu kali dan memeriksa status keluar. Jika ia 0 (sukses), itu berarti internet sedang bekerja.

Kesimpulan

Selamat! Anda baru saja mengambil langkah besar dalam perjalanan pemrograman Unix/Linux Anda. Variabel khusus ini mungkin tampak kecil, tapi mereka adalah tools yang sangat kuat dalam peralatan pemrograman Anda. Ingat, latihan membuat sempurna, jadi jangan ragu untuk mencoba konsep ini dalam skrip Anda sendiri.

Berikut adalah tabel referensi cepat dari variabel khusus yang kita bahas:

Variabel Deskripsi
$0 Nama skrip
$1, $2, ... Argumen baris perintah
$* Semua argumen sebagai satu string
$@ Semua argumen sebagai string terpisah
$? Status keluar perintah terakhir

Tetap kode, tetap belajar, dan terutama, bersenang-senang! Sampaijumpa lagi, semangat skrip!

Credits: Image by storyset