Unix / Linux - Variabel Khusus
Pada bab ini, kita akan membahas secara detail tentang variabel khusus di Unix. Di salah satu bab sebelumnya, kita memahami bagaimana berhati-hati saat menggunakan karakter nonalfanumerik tertentu dalam nama variabel. Ini karena karakter tersebut digunakan dalam nama variabel Unix khusus. Variabel ini dicadangkan untuk fungsi tertentu.
Misalnya, file $ karakter mewakili nomor ID proses, atau PID, dari shell saat ini -
$echo $$
Perintah di atas menulis PID dari shell saat ini -
29949
Tabel berikut menunjukkan sejumlah variabel khusus yang dapat Anda gunakan di skrip shell Anda -
Sr.No. | Variabel & Deskripsi |
---|---|
1 | $0 Nama file dari skrip saat ini. |
2 | $n Variabel ini sesuai dengan argumen yang digunakan untuk memanggil skrip. Sinin adalah angka desimal positif yang sesuai dengan posisi argumen (argumen pertama adalah $ 1, argumen kedua adalah $ 2, dan seterusnya). |
3 | $# Jumlah argumen yang diberikan ke skrip. |
4 | $* Semua argumen dikutip ganda. Jika skrip menerima dua argumen, $ * setara dengan $ 1 $ 2. |
5 | $@ Semua argumen dikutip ganda secara individual. Jika skrip menerima dua argumen, $ @ setara dengan $ 1 $ 2. |
6 | $? Status keluar dari perintah terakhir yang dijalankan. |
7 | $$ Nomor proses shell saat ini. Untuk skrip shell, ini adalah ID proses yang mereka jalankan. |
8 | $! Nomor proses dari perintah latar belakang terakhir. |
Argumen Baris Perintah
Argumen baris perintah $ 1, $ 2, $ 3, ... $ 9 adalah parameter posisi, dengan $ 0 menunjuk ke perintah aktual, program, skrip shell, atau fungsi dan $ 1, $ 2, $ 3, ... $ 9 sebagai argumen ke perintah.
Skrip berikut menggunakan berbagai variabel khusus yang terkait dengan baris perintah -
#!/bin/sh
echo "File Name: $0"
echo "First Parameter : $1"
echo "Second Parameter : $2"
echo "Quoted Values: $@"
echo "Quoted Values: $*"
echo "Total Number of Parameters : $#"
Berikut adalah contoh yang dijalankan untuk skrip di atas -
$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2
Parameter Khusus $ * dan $ @
Ada parameter khusus yang memungkinkan mengakses semua argumen baris perintah sekaligus. $* dan $@ keduanya akan bertindak sama kecuali diapit tanda kutip ganda, "".
Kedua parameter tersebut menentukan argumen baris perintah. Namun, parameter khusus "$ *" mengambil seluruh daftar sebagai satu argumen dengan spasi di antara dan parameter khusus "$ @" mengambil seluruh daftar dan memisahkannya menjadi argumen terpisah.
Kita dapat menulis skrip shell seperti yang ditunjukkan di bawah ini untuk memproses sejumlah argumen baris perintah yang tidak diketahui dengan parameter khusus $ * atau $ @ -
#!/bin/sh
for TOKEN in $*
do
echo $TOKEN
done
Berikut adalah contoh yang dijalankan untuk skrip di atas -
$./test.sh Zara Ali 10 Years Old
Zara
Ali
10
Years
Old
Note - Sini do...done adalah sejenis loop yang akan dibahas dalam tutorial berikutnya.
Status Keluar
Itu $? variabel mewakili status keluar dari perintah sebelumnya.
Status keluar adalah nilai numerik yang dikembalikan oleh setiap perintah setelah selesai. Sebagai aturan, sebagian besar perintah mengembalikan status keluar 0 jika berhasil, dan 1 jika tidak berhasil.
Beberapa perintah mengembalikan status keluar tambahan karena alasan tertentu. Misalnya, beberapa perintah membedakan antara jenis kesalahan dan akan mengembalikan berbagai nilai keluar tergantung pada jenis kegagalan tertentu.
Berikut adalah contoh perintah yang berhasil -
$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2
$echo $?
0
$