Pemrograman Bash Shell

Bash Shell yaitu menyusun atau mengelompokkan beberapa perintah shell (internal atupun eksternal command) menjadi kumpulan perintah yang melakukan tugas tertentu sesuai tujuan penyusunnya. Kelebihan shell di linux dibanding sistem operasi lain adalah bahwa shell di linux memungkinkan kita untuk menyusun serangkaian perintah seperti halnya bahasa pemrograman (interpreter language), melakukan proses I/O, menyeleksi kondisi, looping, membuat fungsi, dsb. adalah proses - proses yang umumnya dilakukan oleh suatu bahasa pemrograman, jadi dengan shell di linux kita dapat membuat program seperti halnya bahasa pemrograman, untuk pemrograman shell pemakai unix atau linux menyebutnya sebagai script shell.

Sebelum mempelajari pemrograman Bash shell di linux sebaiknya anda telah mengetahui dan menggunakan perintah - perintah dasar shell baik itu internal command yang telah disediakan shell maupun eksternal command atau utility, seperti

cd, pwd, times, alias, umask, exit, logout, fg, bg, ls, mkdir, rmdir, mv, cp, rm, clear, ...

utilitas seperti cat, cut, paste, chmod, lpr,...

redirection (cara mengirim output ke file atau menerima input dari file), menggunakan operator redirect >, >>, <, <<, contohnya:

ls > data
hasil ls dikirim ke file data, jika file belum ada akan dibuat tetapi jika sudah ada isinya akan ditimpa.

ls >> data
hampir sama, bedanya jika file sudah ada maka isinya akan ditambah di akhir file.

cat <>
file data dijadikan input oleh perintah cat

pipa (output suatu perintah menjadi input perintah lain), operatornya : | , contoh:

ls -l | sort -s
ouput perintah ls -l (long) menjadi input perintah sort -s (urutkan secara descending), mending pakai ls -l -r saja :-)

ls -l | sort -s | more

cat databaru

Wildcard dengan karakter *, ?, [ ], contohnya:

ls i*
tampilkan semua file yang dimulai dengan i

ls i?i
tampilkan file yang dimulai dengan i, kemudian sembarang karakter tunggal, dan diakhiri dengan i

ls [ab]*
tampilkan file yang dimulai dengan salah satu karakter a atau b

Simple Bash Script

Langkah awal sebaiknya periksa dulu shell aktif anda, gunakan perintah ps (report process status)

[rachmanda@debian$]ps

PID TTY TIME CMD

219 tty1 00:00:00 bash

301 tty1 00:00:00 ps

bash adalah shell aktif di system saya, jika disystem anda berbeda misalnya csh atau ksh ubahlah dengan perintah change shell

[rachmanda@debian$]chsh

Password:

New shell [/bin/csh]:/bin/bash

Shell changed

atau dengan mengetikkan bash

[rachmanda@debian$]bash

sekarang coba anda ketikkan perintah dibawah ini pada prompt shell

echo "Script shell pertamaku di linux"

[rachmanda@debian$]echo "Script shell pertamaku di linux"

Script shell pertamaku di linux

string yang diapit tanda kutip ganda (double quoted) akan ditampilkan pada layar anda, echo adalah statement (perintah) built-in bash yang berfungsi menampilkan informasi ke standard output yang defaultnya adalah layar. jika diinginkan mengulangi proses tersebut, anda akan mengetikkan kembali perintah tadi, tapi dengan fasilitas history cukup menggunakan tombol panah kita sudah dapat mengulangi perintah tersebut, bagaimana jika berupa kumpulan perintah yang cukup banyak, tentunya dengan fasilitas hirtory kita akan kerepotan juga mengulangi perintah yang diinginkan apalagi jika selang beberapa waktu mungkin perintah-perintah tadi sudah tertimpa oleh perintah lain karena history mempunyai kapasitas penyimpanan yang ditentukan. untuk itulah sebaiknya perintah-perintah tsb disimpan ke sebuah file yang dapat kita panggil kapanpun diinginkan.

coba ikuti langkah - langkah berikut:

Masuk ke editor anda, apakah memakai vi,pico,emacs,dsb...

ketikkan perintah berikut

#!/bin/bash

echo "Hello, apa khabar"

simpan dengan nama file tes

ubah permission file tes menggunakan chmod

[rachmanda@debian$]chmod 755 tes

jalankan

[rachmanda@debian$]./tes

kapan saja anda mau mengeksekusinya tinggal memanggil file tes tersebut, jika diinginkan mengeset direktory kerja anda sehingga terdaftar pada search path ketikkan perintah berikut

PATH=$PATH:.

setelah itu script diatas dapat dijalankan dengan cara

[rachmanda@debian$]tes

Hello, apa khabar

tanda #! pada /bin/bash dalam script tes adalah perintah yang diterjemahkan ke kernel linux untuk mengeksekusi path yang disertakan dalam hal ini program bash pada direktory /bin, sebenarnya tanpa mengikutkan baris tersebut anda tetap dapat mengeksekusi script bash, dengan catatan bash adalah shell aktif. atau dengan mengetikkan bash pada prompt shell.

[rachmanda@debian$]bash tes

tentunya cara ini kurang efisien, menyertakan path program bash diawal script kemudian merubah permission file sehingga dapat anda execusi merupakan cara yang paling efisien.

Sekarang coba kita membuat script shell yang menampilkan informasi berikut:

Waktu system

Info tentang anda

jumlah pemakai yang sedang login di system

contoh scriptnya:

#!/bin/bash

#myinfo

#membersihkan tampilan layar

clear

#menampilkan informasi

echo -n "Waktu system :"; date

echo -n "Anda :"; whoami

echo -n "Banyak pemakai :"; who | wc -l

sebelum dijalankan jangan lupa untuk merubah permission file myinfo sehingga dapat dieksekusi oleh anda

[rachmanda@debian$]chmod 755 myinfo

[rachmanda@debian$]./myinfo


Waktu system : Sat Nov 25 22:57:15 BORT 2001

Anda : fajar

Banyak pemakai : 2

tentunya layout diatas akan disesuaikan dengan system yang anda gunakan statement echo-n akan membuat posisi kursor untuk tidak berpindah ke baris baru karena secara default statement echo akan mengakhiri proses pencetakan ke standar output dengan karakter baris baru (newline), anda boleh mencoba tanpa menggunakan opsi -n, dan lihat perbedaannya. opsi lain yang dapat digunakan adalah -e (enable), memungkinkan penggunaan backslash karakter atau karakter sekuen seperti pada bahasa C atau perl, misalkan : dengan opsi

echo -e "\abunyikan bell"

jika dijalankan akan mengeluarkan bunyi bell, informasi opsi pada statement echo dan backslash karakter selengkapnya dapat dilihat via man di prompt shell.

[rachmanda@debian$]man echo


Pemakaian Variabel

Secara sederhana variabel adalah pengenal (identifier) berupa satuan dasar penyimpanan yang isi atau nilainya sewaktu-waktu dapat berubah baik oleh eksekusi program (runtime program) ataupun proses lain yang dilakukan sistem operasi. dalam dokumentasi ini saya membagi variabel menjadi 3 kategori:

Environment Variable

Positional Parameter

User Defined Variable

5.1. Environment Variable

atau variabel lingkungan yang digunakan khusus oleh shell atau system linux kita untuk proses kerja system seperti variabel PS1, PS2, HOME, PATH, USER, SHELL,dsb...jika digunakan akan berdampak pada system, misalkan variabel PS1 yang digunakan untuk mengeset prompt shell pertama yaitu prompt tempat anda mengetikkan perintah - perintah shell (defaultnya "\s-\v\$"), PS2 untuk prompt pelengkap perintah, prompt ini akan ditampilkan jika perintah yang dimasukkan dianggap belum lengkap oleh shell (defaultnya ">"). anda dapat mengeset PS1 dan PS2 seperti berikut.

simpan dahulu isi PS1 asli system anda, sehingga nanti dapat dengan mudah dikembalikan

[rachmanda@debian$]PS1LAMA=$PS1

sekarang masukkan string yang diinginkan pada variabel PS1

[rachmanda@debian$]PS1="Hi ini Promptku!"

Hi ini Promptku!PS2="Lengkapi dong ? "

maka prompt pertama dan kedua akan berubah, untuk mengembalikan PS1 anda ke prompt semula ketikkan perintah

[rachmanda@debian$]PS1=$PS1LAMA

0 Response to "Pemrograman Bash Shell"

Posting Komentar

Followers

Club Cooee
rachmanda by Informatika