Skip to main content

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: