Cara Menerima Argument dari Command Line di Bash
Bagi kamu yang sering main-main dengan terminal di Linux atau macOS, pasti nggak asing sama yang namanya “argument” di command line. Argument itu adalah nilai atau informasi yang kita kasih ke sebuah skrip atau program saat kita menjalankannya. Nah, di artikel ini, kita bakal belajar gimana cara menerima argument dari command line di bash. Awalnya mungkin terdengar agak ribet, tapi tenang aja, kita bakal bahas step by step biar gampang dipahami.
Apa Itu Argument?
Sebelum masuk ke teknisnya, kita harus tau dulu apa itu argument. Argument itu kayak parameter yang kita kasih ke sebuah perintah atau skrip. Misalnya, kita ngetik echo Hello World
di terminal. Nah, Hello
sama World
itu adalah dua buah argument yang kita berikan ke perintah echo
.
Di skrip bash, kita bisa akses argument-argument ini pake variabel khusus:
$1
: argument pertama$2
: argument kedua$#
: jumlah argument yang diberikan$@
: semua argument dalam bentuk array
Paham kan? Kalo udah, kita lanjut ke prakteknya.
Contoh Sederhana
Misalnya kita punya skrip sederhana bernama greet.sh
yang isinya:
#!/bin/bash
echo "Halo, $1! Apa kabar?"
Di sini, $1
bakal nge-refer ke argument pertama yang kita kasih. Jadi kalo kita jalanin skrip ini dengan ./greet.sh Joko
, outputnya bakal:
Halo, Joko! Apa kabar?
Gampang banget kan? Sekarang kalo mau kasih lebih dari satu argument gimana? Gak masalah, kita tinggal pake $2
, $3
, dan seterusnya.
#!/bin/bash
echo "Halo, $1! Apa kabar? Kamu tinggal di $2 ya?"
Nah, kalo kita jalanin dengan ./greet.sh Joko Bandung
, outputnya:
Halo, Joko! Apa kabar? Kamu tinggal di Bandung ya?
Menggunakan $#
dan $@
Kadang-kadang kita butuh tau berapa banyak argument yang diberikan. Untuk itu, kita bisa pakai $#
. Misalnya:
#!/bin/bash
echo "Kamu memberikan $# argument"
Kalo kita jalankan dengan ./greet.sh Joko Bandung Indonesia
, outputnya:
Kamu memberikan 3 argument
Nah, terus kalo kita mau akses semua argument sekaligus? Kita bisa pake $@
. Contoh:
#!/bin/bash
echo "Argument yang kamu berikan: $@"
Outputnya:
Argument yang kamu berikan: Joko Bandung Indonesia
Looping Through Arguments
Kita juga bisa looping melalui semua argument dengan for
loop. Misalnya:
#!/bin/bash
for arg in "$@"
do
echo "Argument: $arg"
done
Kalo dijalanin pake ./greet.sh Joko Bandung Indonesia
, outputnya:
Argument: Joko
Argument: Bandung
Argument: Indonesia
Contoh Penggunaan Lebih Kompleks
Oke, sekarang kita coba bikin skrip yang lebih kompleks. Misalnya skrip buat ngejumlahin angka yang kita kasih.
#!/bin/bash
sum=0
for num in "$@"
do
sum=$((sum + num))
done
echo "Totalnya adalah: $sum"
Nah, kalo kita jalanin pake ./sum.sh 5 10 15
, outputnya:
Totalnya adalah: 30