Pertama-tama kita harus mengerti dan tau aturan yang ada pada shell linux . Berikut perbedaan dari jenis pemrograman dalam linux .
Fitur-fitur programming dari LINUX shell:
- Shell variables
- Operators
- Logic structures
Operators: Script Shell mendukung banyak operator, termasuk operasi matematik
Logic structures: Script Shell mendukung sequential logic (untuk menjalankan perintah serial), decision logic (untuk percabangan), looping logic (untuk proses looping), dan case logic (untuk proses seleksi)
Read (Input)
Fungsi : untuk membaca data dari keyboard atau file.
Bentuk umum :
read var1 var2 ... varn
Keterangan :
- kata pertama di-assign ke var 1, kata kedua ke var2 dan seterusnya.
- jika jumlah variabel dalam list lebih sedikit dari jumlah data yang dibaca maka sisa baris disimpan dalam variabel terakhir (var n).
Membaca data nama dan alamat dari keyboard
$ read nama alamat dudi depok
Echo(Output)
Fungsi : untuk menampilkan string ke standard output (layar).
Bentuk umum :
echo [-pilihan] arg1 arg2 ... argn
Keterangan :
- Setiap argumen dipisahkan oleh satu spasi.
- Pilihan yang sering digunakan :
-n : tidak menampilkan baris baru (newline)
-e : untuk menampilkan backslash-escaped characters
kondisi
Kondisi digunakan untuk menghasilkan nilai balik. Untuk melakukan pemeriksaan kondisi dapat menggunakan tanda test, berikut macam macam perbandingan nilai :
PERULANGAN/LOOPING
until do done
biasanya digunakan untuk perulangan, di dalam until perulangan akan terus dilakukan sampai kondisi bernilai benar.
bentuk penulisan :
until kondisi
do
statement
done
while do done
digunakan untuk perulangan, namun berbeda dengan until dimana pada while pengulangan akan terus dilakukan selama kondisi bernilai benar
bentuk penulisan :
while kondisi
do
statement
done
for do done
di gunakan untuk perulangan
bentuk penulisan :
echo “masukkan angka : ”
read angka
counter=1
for cetak in `seq 1 $angka`
do
echo -n “-”
echo -n “$cetak”
done
case in esac
digunakan untuk pemilihan
bentuk penulisan :
case $variable in
option-1)
statement
;;
option-2)
statement
;;
option-n)
statement
;;
esac
Pengutipan
Karakter khusus adalah karakter yang mempunyai fungsi khusus bagi shell.
Kondisi digunakan untuk menghasilkan nilai balik. Untuk melakukan pemeriksaan kondisi dapat menggunakan tanda test, berikut macam macam perbandingan nilai :
-eq : sama dengan (=)
-ge : lebih besar sama dengan (>=)
-gt : lebih besar (>)
-le : lebih kecil sama dengan (<=)
-lt : lebih kecil (<)
-untuk operator string
if then else
biasanya digunakan untuk menentukan percabangan
bentuk penulisan :
-ge : lebih besar sama dengan (>=)
-gt : lebih besar (>)
-le : lebih kecil sama dengan (<=)
-lt : lebih kecil (<)
-untuk operator string
-untuk operator integer
biasanya digunakan untuk menentukan percabangan
bentuk penulisan :
if kondisi
then
statement
else
statement
fi
then
statement
else
statement
fi
until do done
biasanya digunakan untuk perulangan, di dalam until perulangan akan terus dilakukan sampai kondisi bernilai benar.
bentuk penulisan :
until kondisi
do
statement
done
digunakan untuk perulangan, namun berbeda dengan until dimana pada while pengulangan akan terus dilakukan selama kondisi bernilai benar
bentuk penulisan :
while kondisi
do
statement
done
for do done
di gunakan untuk perulangan
bentuk penulisan :
echo “masukkan angka : ”
read angka
counter=1
for cetak in `seq 1 $angka`
do
echo -n “-”
echo -n “$cetak”
done
digunakan untuk pemilihan
bentuk penulisan :
case $variable in
option-1)
statement
;;
option-2)
statement
;;
option-n)
statement
;;
esac
Pengutipan
Karakter khusus adalah karakter yang mempunyai fungsi khusus bagi shell.
Contoh karakter khusus :
? : substitusi nama file
* : substitusi nama file
` : substitusi perintah
$ : substitusi variabel
? : substitusi nama file
* : substitusi nama file
` : substitusi perintah
$ : substitusi variabel
-Untuk menjawab soal yang di atas , pertama-tama masuk kedalam terminal dan buat file
cat > tugas.sh
-masuk ke dalam vi tugas.sh
-masukkan program seperti dibawah ini
pil='y'
while [ $pil == 'y' ] || [ $pil == 'Y' ]
do
clear
echo " HALLO , SELAMAT DATANG DI PROGRAM SHELL SCRIPT . . . . . ! !
echo " PROGRAM INI DI BUAT OLEH :
echo -n " NIM : "
read a
echo -n " NAMA : "
read b
cat > tugas.sh
-masuk ke dalam vi tugas.sh
-masukkan program seperti dibawah ini
pil='y'
while [ $pil == 'y' ] || [ $pil == 'Y' ]
do
clear
echo " HALLO , SELAMAT DATANG DI PROGRAM SHELL SCRIPT . . . . . ! !
echo " PROGRAM INI DI BUAT OLEH :
echo -n " NIM : "
read a
echo -n " NAMA : "
read b
echo "=========================================================="
echo -n " silahkan masukkan batas loop $b : "
read loop
if [ $loop -le 200 ] ; then
for (( i=0 ; i<=loop ; i++ )) ;
do
echo -n $i ","
done
else
exit
fi
echo ""
echo "==========================================================="
bil_ganjil=0;
bil_genap=0;
for ((x=0 ; x<=$loop ; x++)
do
let hitung=$x%2;
if [ $hitung -eq 0 ] ; then
let bil_genap = $bil_genap+1;
else
let bil_ganjil = $bil_ganjil+1;
fi
done
echo ""
echo "banyak bilangan genap = $bil_genap "
echo "banyak bilangan ganjil = $bil_ganjil "
echo ""
echo -n " kembali ke awal ? y/n : "
read pil
while [ $pil == 'n' ] || [ $pil == "N" ]
do
exit
done
done
maka hasil outputnya sebagai berikut :
setelah kodingan tadi selesai , save dalam vi dengan wq!
kemudian sh tugas.sh
penjelasan program :
variabel pil dijdikan sebagai program untuk memilih pilihan keluar ya atau tidak
-kondisi if dimana jika nilai batas yang diinputkan kurang dari sama dengan 200 maka angkanya akan ditampilkan. Jika lebih dari 200 maka program keluar.
-nilai genap dan ganjil harus di deklarasi untuk proses looping dan penambahan nilai
-let digunakan untuk menambahkan nilainya
-variabel "hitung" digunakan untuk menampung nilai dari $x%2. Yang kemudian masuk ke sebuah kondisi jika nilai dari hitung=0, nilai bilangan genap bertambah 1. Jika tidak maka nilai bilangan ganjilnya bernilai 1.
echo -n " silahkan masukkan batas loop $b : "
read loop
if [ $loop -le 200 ] ; then
for (( i=0 ; i<=loop ; i++ )) ;
do
echo -n $i ","
done
else
exit
fi
echo ""
echo "==========================================================="
bil_ganjil=0;
bil_genap=0;
for ((x=0 ; x<=$loop ; x++)
do
let hitung=$x%2;
if [ $hitung -eq 0 ] ; then
let bil_genap = $bil_genap+1;
else
let bil_ganjil = $bil_ganjil+1;
fi
done
echo ""
echo "banyak bilangan genap = $bil_genap "
echo "banyak bilangan ganjil = $bil_ganjil "
echo ""
echo -n " kembali ke awal ? y/n : "
read pil
while [ $pil == 'n' ] || [ $pil == "N" ]
do
exit
done
done
maka hasil outputnya sebagai berikut :
setelah kodingan tadi selesai , save dalam vi dengan wq!
kemudian sh tugas.sh
penjelasan program :
variabel pil dijdikan sebagai program untuk memilih pilihan keluar ya atau tidak
-kondisi if dimana jika nilai batas yang diinputkan kurang dari sama dengan 200 maka angkanya akan ditampilkan. Jika lebih dari 200 maka program keluar.
-nilai genap dan ganjil harus di deklarasi untuk proses looping dan penambahan nilai
-let digunakan untuk menambahkan nilainya
-variabel "hitung" digunakan untuk menampung nilai dari $x%2. Yang kemudian masuk ke sebuah kondisi jika nilai dari hitung=0, nilai bilangan genap bertambah 1. Jika tidak maka nilai bilangan ganjilnya bernilai 1.