Bash fundamental
program Bourne Again Shell(Bash) biasanya diawali dengan shebang(bash # dan bang !) seperti dibawah ini
#! <runner>
sekarang coba buat simple program dengan menampilkan hello bash!
#! /bin/bash
echo "hello bash!"
kemudian simpan dengan ekstensi .sh, contoh: file.sh
dan beri akses untuk execute
chmod u+x file.sh
Fundamental
output
echo "hello"
input
read a
echo $a
variables
name="angel"
echo $name
operation
- : addition
- : subtraction
- : multiplication / : division ** : exponentiation % : modulus
r=$((5+1))
echo $r
condition
if [ expression ]; then
statement
elif [expression ]
do
statement
else
statement
fi
penggunaan if [] dan if [[]]
condition ini sama sam memiliki fungsi yang sama, namun memiliki perbedaan dalm comparison dan compatible pada program yang digunakan untuk menjalankannya
misal
if []
- banyak digunakkan untuk camparison dengan type data primitif. seperti string ataupun angka
- tidak bisa digunkan dengan operator logical. seperti AND atau OR
- dapat mendukung semua runner. (bash , sh, zsh, ksh)
sedangkan
if [[ ]]
- dapat digunakan untuk comparison semua data
- dapat menggunakkan operator logical seperti AND atau OR
- tidak mendukung semua runner. (tidak bisa berjalank pada runner
sh)
comparison
-gt : greaten then
-lt : less then
-eq : equal
-a : AND
-o : OR
Looping
for in
for i in {1..5}
do
echo $i
done
or
for fruit in manggo apple dragonfruit
do
echo $fruit
done
while do
i=1
while [[ $i -le 10 ]]
do
echo $i
((i+=1))
done
Args
for x in $@; do
echo $x
done
# bash.sh arg1 arg2
# output: arg1 arg2
jika ingin mengambil args berdasarkan urutan, bisa menggunakkan number:
echo $1
# output: arg1
# ------------------
echo $2
# output: arg2
Read file
while read -r line; do
echo $line
done < 'example.txt'
Special Character
mendapatkan status kode error terakhir di bash
true
echo $? # exit 0
false
echo $? # exit 1
perintah ini bisa untuk handle code status error yang dikirimkan oleh command sebelumnya. setiap command akan return status code 1 atau 0
cd directory_is_not_exist/
if [ $? -eq 0 ]; then
echo "folder is exist!"
else
echo "folder is not exist!"
fi
check jika value kosong
value = ""
if [[ -z $value ]]; then
echo "value is empty"
fi
References: