• Tidak ada hasil yang ditemukan

Bab 2. Bourne Again Shell. i STTS. Teori PENDAHULUAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "Bab 2. Bourne Again Shell. i STTS. Teori PENDAHULUAN"

Copied!
24
0
0

Teks penuh

(1)

Bab 2

Bourne Again Shell

Teori

PENDAHULUAN

Ketika user login ke dalam Linux, mereka berkomunikasi dengan satu dari beberapa interpreter. Setiap operasi terhadap interpreter ini disebut shell, dan setiap shell mempunyai satu fungsi, yaitu membaca dan melaksanakan perintah-perintah dari input standard.

Dengan shell maka perintah-perintah dapat :

• digabung untuk menghasilkan perintah-perintah baru • mengirimkan parameter-parameter posisi

• ditambahkan dan dihapus oleh user

• diproses dalam suatu loop atau dalam conditional

• dapat dijalankan background tanpa menginterrupt sebuah proses pada suatu terminal.

Lebih jauh lagi, perintah-perintah dapat diberikan input dari suatu source dan dapat mengirimkan output ke file, printer, atau ke perintah yang lain. COMMANDS

Cara yang paling umum di dalam menggunakan shell ialah dengan memasukkan perintah-perintah sederhana melalui keyboard. Argumen yang pertama (diberi nomer nol) akan berisi nama dari perintah yang

(2)

akan dijalankan, dan argumen lain yang dibutuhkan akan dikirimkan ke perintah tersebut.

Contoh :

• $ ls *.c #menampilkan semua file dengan extention .c • $ cat .profile #untuk menampilkan isi dari file .profile

Jika sebuah perintah bersifat executable maka shell akan memprosesnya langsung. Contoh di atas memperlihatkan perintah yang sifatnya

executable. Jika perintah dibuat sendiri oleh user dan belum executable maka user memerlukan procedure shell untuk menjalankannya. Untuk jelasnya ketikkan :

• $ vi coba1 #untuk masuk ke dalam editor vi # Perintah menampilkan kalimat

echo 'Ini Program Linux Saya'

Lalu simpan dengan tombol Esc-x, maka sekarang user sudah mempunyai perintah baru yaitu coba1, dan untuk mejalankannya diperlukan shell procedure

$ sh coba1

maka coba1 akan dijalankan

BAGAIMANA CARA SHELL MENCARI PERINTAH

Shell secara normal akan mencari perintah yang user ketikkan di dalam tiga lokasi yang berbeda pada filesystem. Mula-mula shell akan memakai langsung nama perintah yang diketikkan. Jika gagal maka directory /bin akan ditambahkan, dan jika tidak berhasil lagi maka /usr akan ditambahkan, sehingga directory-nya adalah /usr/bin/perintah. Mengenai masalah directory ini dapat diatur dengan mengubah path pada variabel PATH Linux.

CARA MENAMPILKAN FILE

Kebanyakan argumen-argumen dari perintah-perintah ialah nama file. Kadang-kadang nama file memiliki kemiripan. Agar dapat memproses

(3)

nama file yang mirip maka Linux menyediakan bentuk-bentuk khusus yang dapat dipakai. Adapun bentuk-bentuk khusus tersebut ialah :

• * Jika digunakan maka akan menampilkan semua nama file yang diinginkan.

Contoh : • $ ls *.c • $ ls *temp* • $ ls a*

• ? Jika digunakan maka akan menggantikan posisi dari satu karakter. Contoh :

• $ ls coba?

semua nama file yang mengandung kata coba plus satu karakter bebas akan ditampilkan.

• [ ] Jika digunakan maka akan menampilkan semua nama file sesuai dengan karakter-karakter yang diberikan di dalam tanda [].

Contoh :

• $ ls coba [a-f]

semua nama file yang mempunyai kata coba plus karakter a sampai f akan ditampilkan.

Perhatikan bahwa nama directory tidak boleh mengandung karakter-karakter di atas.

Beberapa karakter, seperti <, >, *, ?, [ ] memiliki arti tersendiri untuk shell. Untuk memakainya biasanya diperlukan tanda-tanda baca, antara lain : • Tanda petik tunggal (') atau tanda petik ganda (") untuk membuat

suatu kalimat. Contoh :

• $ echo 'Saya Mahasiswi STTS' Perhatikan perbedaanya dengan $ echo "Saya Mahasiswi STTS" • $ echostuff='echo $? $*; ls *| wc'

$ echo $echostuff

akan menghasilkan string echo $? $*; ls *| wc

• Tanda `..` memiliki fungsi untuk menjalankan perintah yang terdapat di dalamnya.

(4)

Contoh :

• $ ABC=`cat .profile` $ echo $ABC

• Tanda $ pada contoh di atas ialah untuk menampilkan isi dari suatu variabel.

Contoh :

• $ kata='STTS' $ echo $kata

maka akan tercetak STTS.

• Tanda \ di depan sebuah karakter tunggal digunakan untuk mencetak karakter tersebut.

Contoh : • $ echo "\""

maka hasilnya "

Tanda \ juga digunakan untuk menjalankan suatu perintah di dalam perintah.

Contoh :

• $ echo "Directory anda sekarang : \`pwd\`" DERETAN PERINTAH DAN PERINTAH PIPA (PIPELINE)

Perintah Linux dapat dibuat secara berderet dengan memisahkan dengan tanda:

• ; (titik koma) Contoh :

• $ who ; ls -l ; date

• Pipeline sebagai filter (penyaring) untuk membatasi antara perintah yang satu dengan yang lain. Pipeline diwakili dengan tanda |. Di dalam deretan perintah yang mengandung pipeline maka tiap output perintah (kecuali perintah terakhir) akan menjadi input bagi perintah selanjutnya.

Contoh :

• $ banner STTS | write jim tty05

(5)

Untuk jelasnya ketikkan contoh di bawah ini : • $ who | ls

• $ who | sort

akan menampilkan semua user yang sedang login dalam keadaan urut.

MENGGANTI PERINTAH

Seperti diterangkan di atas bahwa semua perintah dapat diletakkan di dalam tanda `..` sehingga output dari perintah dapat disimpan pada suatu variabel. Hal ini berguna untuk memberikan nilai pada shell variabel.

Contoh :

• $ today=`date`

maka today akan berisi tanggal dari system yang sedang berlaku saat itu. Untuk melihat isi dari today maka gunakan perintah echo $today. Kita dapat pula memberikan pipeline di dalam tanda `..`.

Contoh :

• $ users=`who | wc -l`

Semua perintah yang akan ditampilkan di layar dapat diletakkan di dalam tanda `..`, dan di dalm tanda tersebut dapat dilakukan perintah berulang (di dalam perintah terdapat perintah lagi).

Contoh :

• $ logmsg=`echo your login directory is \`pwd\``

maka pwd yang juga merupakan perintah akan dijalankan.

Variabel-variabel dapat diisi dengan menggunakan perintah read dan line commands.

Contoh :

• $ read first init last

kita memasukkan input G. A. SNYDER maka first=G., init=A., last=SNYDER

Dengan line command user dapat langsung mendefinisikan : first=G. init=A. last=SNYDER

(6)

PARAMETER PARAMETER POSISI

Ketika suatu procedure shell dijalankan maka shell akan membuat parameter-parameter posisi. Di mana nama dari procedure shell ditempatkan pada posisi 0 ($0), parameter yang pertama = $1, dan seterusnya. Perintah shift dapat digunakan untuk mengakses parameter dengan nomor posisi yang lebih besar dari sembilan.

Contoh : • $ pr a b c

$ shift

maka $0=pr, $1=b, $2=c

VARIABEL VARIABEL YANG DIDEFINISIKAN USER

Shell juga mengenal variabel-variabel yang mengandung alphanumerik. Untuk memberikan nilai pada variabel digunakan syntax :

nama=string

nama di sini mewakili nama dari variabel dan string ialah nilai yang akan diberikan ke variabel. Perhatikan bahwa antara tanda = dan string tidak ada spasi.

Lebih dari satu assignment dapat dilakukan dalam sebuah baris perintah. Tapi perhatikan bahwa shell menjalankan assignment dari kanan ke kiri. Contoh :

• $ a=$b b=abc

maka a akan berisi abc

Jika kita ingin memberikan spasi atau tab maka kita harus menggunakan tanda '...' atau "...".

Contoh :

• $ a=$b b='sekolah tinggi teknik surabaya'

$ stars=***** #jika ingin memberi spasi maka stars=' *****' $ asteriks='$stars'

(7)

$ asteriks="$stars"

Perhatikan perbedaan dalam variabel asteriks.

Untuk mengakses nilai dari suatu variabel dalam suatu deretan kata, gunakan tanda { }.

Contoh : • $ a='pem'

$ echo "${a}belian makanan" #tercetak pembelian makanan Perhatikan perbedaannya jika tanda { } tidak digunakan.

Variabel-variabel di bawah ini dibuat oleh shell. Beberapa dari mereka diset oleh shell, tapi semua dapat diubah oleh user.

• HOME

Variabel yang berisi nama dari directory login user pada saat pertama kali login ke dalam Linux. Directory ini akan menjadi directory utama; perintah cd tanpa argumen akan mengembalikan user ke home directory.

Contoh :

• $ echo $HOME $ cd /usr/bin

$ cd #kembali ke home

$ pwd #melihat directory aktif • PATH

Variabel yang berisi path yang digunakan shell di dalam mencari perintah.

Contoh :

• $ PATH=/bin:/usr/bin:.

Tanda . di belakang merupakan current directory dan antara satu directory dengan directory lain dibatasi tanda :

(8)

• PS1

Variabel yang berisi karakter (kata) yang digunakan sebagai prompt primer. Nilai standard dari PS1 ialah "$" untuk Bourne Shell, "#" untuk root, dan "%" untuk C Shell.

Contoh : • $ PS1=STTS

maka prompt primer akan berubah menjadi STTS • PS2

Variabel yang berisi prompt sekunder. Nilai standard dari variabel ini ialah ">".

Contoh :

• $ PS2=Second

maka prompt primer akan berubah menjadi Second. • OLDPWD

Variabel yang berisi working directory sebelumnya. • PWD

Variabel yang berisi working directory saat ini. • SECONDS

Variabel yang berisi jumlah detik yang telah dilalui sejak session bash yang sekarang dijalankan.

User harus menggunakan perintah export untuk semua variabel di atas. Perintah export akan menyebabkan terjadinya nilai-nilai yang

dimodifikasi tersebut berlaku untuk semua perintah shell yang dibuat. Contoh :

(9)

VARIABEL VARIABEL SPECIAL TERDEFINISI

Beberapa variabel memiliki arti penting seperti di bawah ini dan hanya diset oleh shell :

• $#

Variabel yang digunakan untuk menampung jumlah argumen yang dikirimkan ke suatu perintah, tetapi tidak termasuk nama dari perintah itu sendiri.

Contoh :

• $ sh pr a b c $ echo $#

maka jumlah argumen yang ditampilkan ialah 3.

Salah satu penggunaan penting dari variabel ini ialah untuk memeriksa apakah jumlah argumen yang ditulis sesuai dengan yang dibutuhkan oleh perintah.

Contoh :

• if test $# -lt 2 then

echo 'Argumen yang dibutuhkan berjumlah 2 atau lebih' • $?

Berisi exit status (exit code) dari perintah yang dilaksanakan terakhir. Nilainya berupa desimal. Kebanyakan perintah Unix mengembalikan nilai 0 untuk memberitahu bahwa proses sukses.

Contoh :

• $ mail root < notes $ echo $?

maka akan ditampilkan nilai 0 jika file notes ada atau nilai 2 jika file notes tidak ada.

• $$

Variabel yang berisi nomer proses dari perintah yang sedang diakses. Karena nomer-nomer proses unik untuk semua proses maka variabel ini

(10)

biasa digunakan membentuk nama yang unik untuk nama file temporary.

Contoh :

• $ temp=/usr/tmp/$$ $ ls > $temp

$ rm -F $temp #hapus jika sudak tak terpakai • $!

Variabel yang berisi nomer proses dari perintah terakhir yang dijalankan secara background. $! ini terdiri dari 1-5 digit.

Contoh :

• $ cc testfile.c& #program dijalankan secara background $ echo $!

akan menampilkan nomer proses dari perintah di atas. • $-

Variabel yang berisi nama dari flag-flag eksekusi yang aktif di dalam perintah shell. Contoh : • $ cat .profile $ echo $- akan menghasilkan 'xv'. FILE .profile

File .profile dibaca setiap saat user login ke Linux pada Bourne Again Shell. File ini digunakan untuk menset variabel-variabel HOME, PATH, dll yang terdapat di dalam file tersebut. File ini seperti file AUTOEXEC.BAT di DOS.

Contoh : • $ vi .profile

lalu tambahkan echo 'STTS <Sekolah Tinggi Teknik Surabaya>' maka setiap kali user login, kalimat di atas akan dicetak.

(11)

BOURNE AGAIN SHELL PROGRAMMING

Karena shell Unix merupakan interpreter, maka shell juga mempunyai tata cara programming pula. Praktikum kali ini membahas cara programming Bourne Again Shell.

Membuat procedure shell dapat dilakukan dengan membuat alur program pada screen editor vi dengan menuruti tata cara Bourne Again Shell programming.

Perintah (shell) dapat dijalankan dengan 2 cara : 1. Dengan memanggil procedure shell terlebih dahulu

Contoh : $ sh coba

sh -v (untuk trace baris yang dijalankan) sh -x (perintah yang sedang diproses)

2. Dengan membuat program tersebut bersifat executable

Sebelum dijalankan, directory tempat program tersebut darus dimasukkan dahulu dalam path.

Contoh : isi file coba #!/usr/bin/sh

# baris 1 menunjukkan program untuk menjalankan # baris 2 dan 3 adalah baris komentar

echo „I love pinguin‟ echo “don‟t you ?” <EOF>

• $ chmod u+x coba $ coba

DAFTAR PERINTAH • Perintah echo :

(12)

echo [option] [args]

echo biasanya mengeluarkan output ke layar. Contoh :

• $ echo "Program Linux Saya"

Jika option n diberikan maka akan menghilangkan ganti baris (newline).

Contoh :

• $ echo -n 'Masukkan nama :' • Perintah read :

Perintah read digunakan untuk meminta inputan $ read nama

• Perintah if

Bentuk penggunaan dari perintah if ialah : if [ekspresi1] then perintah-perintah elif [ekspresi2] then perintah-perintah else perintah-perintah fi

Jika ekspresi yang dituliskan di samping if menghasilkan true, maka perintah di samping then akan dilaksanakan. fi digunakan untuk mengakhiri perintah if.

Contoh :

• if test -f "$1" then ls $1 elif test -d "$1" then (cd $1;ls -a)

else echo $1 bukan suatu file atau directory fi

Perintah test dapat digantikan dengan [ ]. Jadi : if [ -f "$1" ] Contoh :

• if [ $HOME ] ; then echo hello ; fi if [ ! -f file ]

(13)

fi

• Perintah case

Bentuk penggunaan dari case ialah : case string1 in kondisi1) perintah-perintah;; kondisi2) perintah-perintah;; *) perintah-perintah;; esac

Tanda ;; untuk mengakhiri perintah case setelah perintah-perintah di dalam kondisi dilaksanakan. esac digunakan sebagai tanda akhir dari blok case.

Contoh :

• case $LOGNAME in root)

echo 'hello root, selamat datang';; steve)

echo 'bagaimana liburanmu ?';; jim)

echo 'tolong baca mailmu';; esac

User dapat juga menggunakan wild-card. Contoh :

• case $LOGNAME in budi|jim)

echo 'jangan lupa makan nanti';; *)

echo 'welcome to Linux';; esac

• Perintah while dan until Bentuk penulisan perintah :

(14)

while (atau until) ekspresi do

perintah-perintah done

while digunakan untuk melakukan perulangan selama ekspresi bernilai true, dan penggunaan dari until merupakan kebalikan dari while. Contoh :

• #counter val=1

while [ $val -lt 11 ] do

echo "Bilangan : `echo $val` masih < 11" val=`expr $val + 1`

done • val=10

until [ $val -lt 1 ] do

echo "Bilangan : `echo $val` masih > 0" val=`expr $val - 1`

done • Perintah for

Bentuk penulisan perintah for : for variabel in list

do perintah-perintah done Contoh : • for val in 1 2 3 4 5 do echo $val done

• for file in * ; do echo $file ; done • count=0

(15)

for file in * do count=`expr $count + 1` done • for val in `ls` do echo $val done

Kita dapat menghilangkan 'in list' untuk menerima parameter dari luar. Contoh :

• #ulang for word

do echo $word$word done

Lalu berikan status execute untuk file ulang dengan chmod +x ulang dan cobalah dengan ulang ma pa me ko

• Loop Control : break dan continue

Perintah break digunakan untuk menghentikan proses looping pada for dan while, dan perintah continue digunakan untuk melanjutkan looping dengan segera. Perintah-perintah ini hanya berfungsi selama ditulis di dalam blok do dan done.

Contoh :

• while true #loop forever do echo "Please enter data : " read response

case $response in "done") break;; " ") continue;;

*) #process data here;; esac

done

Perintah break dan continue dapat diikuti level n (break n atau continue n). Ini berguna di dalam nested loop untuk mengatur loop mana yang

(16)

akan di-break atau di-continue. Jika level tidak diberikan, maka loop yang terakhir yang akan di-break atau di-continue.

• Akhir dari File dan Perintah exit

Ketika shell mencapai akhir dari file pada procedure shell, maka shell akan mengeluarkan exit status. Tapi jika user ingin keluar dari procedure shell tanpa harus mencapai end of file maka user dapat menggunakan perintah exit n (n=levelnya).

Contoh : • if true

then exit 6 fi

Setelah menjalankan program di atas, perhatikanlah isi dari variabel $?. Yang perlu diingat di sini ialah exit status untuk pelaksanaan perintah yang berhasil dijalankan oleh shell selalu sama dengan 0. • Mendefinisikan Function

Shell memiliki kemampuan untuk membuat function. Function sama seperti procedure shell cuma function ini residen di memori sehingga dapat diakses langsung oleh shell. Bentuk penulisan :

fname () {

perintah-perintah shell }

Function didefinisikan sekali dan dapat dipanggil berulang kali. Contoh :

• getyn () {

while echo "0* (y/n) ? c">&2 do read yn rest

case $yn in [Yy]) return 0;; [Nn]) return 1;;

*) echo "isi dengan y atau n">&2 esac

(17)

done }

cara menjalankan : getyn "Ingin melanjutkan lagi" • show () {

echo $1 echo $2 exit }

Cobalah dengan : show hello world • Perintah test : evaluasi kondisi

Perintah test mengevaluasi ekspresi dari argumen yang diberikan. Jika ekspresinya benar, maka test akan menghasilkan nol sebagi exit status. Test memberikan exit status tidak sama dengan nol jika tidak ada argumen yang diberikan. Bentuk penulisannya :

test ekspresi atau [ ekspresi ]

Di bawah ini ada beberapa pilihan yang dapat dipakai bersama perintah test untuk membuat perintah conditional :

-r nama file digunakan untuk menguji apakah file tersebut dapat dibaca oleh user.

Contoh :

• if test -r "$1" then cat "$1" fi

-w namafile digunakan untuk menguji apakah file tersebut dapat ditulisi oleh user.

Contoh :

• if test -w "$1" then who >> "$1" fi

-x namafile digunakan untuk menguji apakah file tersebut dapat dijalankan oleh user.

Contoh :

(18)

then "$1" fi

-s namafile digunakan untuk menguji apakah file tersebut berukuran lebih besar dari 0.

Contoh :

• if test -s "$1" then mail jim < "$1" fi

-d namafile digunakan untuk menguji apakah argumen yang diberikan merupakan sebuah directory atau bukan.

Contoh : • if [ -d "$1" ]

then (cd "$1"; ls -a) fi

-f namafile digunakan untuk menguji apakah file tersebut merupakan file biasa.

Contoh : • if [ -f "$1" ]

then cat "$1" fi

-z str mengeluarkan nilai true jika panjang str sama dengan 0. -n str mengeluarkan nilai true jika panjang str lebih besar 0.

dan pilihan-pilihan di atas dapat dikombinasikan dengan operasi-operasi :

! tanda tidak sama -a operasi and -o operasi or Contoh :

• if test $# != "2"

then echo "membutuhkan 2 argumen" fi

(19)

• Perintah expr

Perintah expr digunakan untuk operasi aritmatik dan logika pada bilangan integer. expr mengevaluasi ekspresi tunggal dan menulis hasilnya ke layar. Contoh : • a=1 while test $a -lt 5 do echo $a a=`expr $a + 1` done

Selain digunakan untuk melakukan proses aritmatik, perintah expr juga dapat digunakan untuk :

 Mencari posisi suatu karakter expr index <kalimat> <karakter>

 Menghitung panjang kalimat expr length <kalimat>

 Melakukan proses substring

expr substr <kalimat> <posisi awal> <panjang> • true dan false

Perintah true dan false memberikan nilai true dan false.

Perintah-perintah ini biasa digunakan untuk implementasi loop-loop tak bersyarat. Contoh : • a=1 while true do echo $a a=`expr $a + 1` if test $a -gt 10 then exit fi

(20)

done • Perintah . (titik)

Bentuk pemakaian : . proc

Dengan perintah ini menyebabkan shell membaca perintah dari proc tanpa membuat proses baru. Perubahan terhadap variabel di dalam proc hanya berpengaruh setelah perintah dot (.).

Contoh :

• $ a=`echo ini uji coba perintah .` $ . a

Perintah ini biasa digunakan untuk menginisialisasi ulang variabel-variabel yang terdapat di dalam file .profile setelah user melakukan perubahan.

Contoh : • $ . .profile • Perintah

PENGGANTIAN BERSYARAT (ISI VARIABEL)

Jika user menuliskan $var maka isi dari var tersebut yang akan

ditampilkan. Tapi kadang-kadang user ingin membuat suatu kondisi yang dapat mengatur penggantian penggunaan isi dari variabel. Dengan beberapa perintah di bawah ini maka penggantian berkondisi tersebut dapat dilaksanakan. Adapun variabel-variabel tersebut ialah :

• ${variabel: - string}

Perintah ini berarti jika variabel ini berisi maka gunakanlah isi dari variabel tersebut. Tapi jika variabel ini kosong maka gunakanlah ekspresi yang diberikan. Ingat dalam perintah di atas isi dari variabel tidak berubah.

Contoh :

(21)

Lalu cobalah : isi='stts'

echo ${isi: - 'mahasiswa'} • ${variabel:=string}

Jika variabel berisi maka gunakan isi dari varabel, tapi jika variabel kosong maka isilah variabel dengan ekspresi yang diberikan (mengganti posisi string) dan gunakan untuk ekspresi.

Contoh :

• cd ${HOME:='/usr/gas'}

ini berarti jika HOME tidak kosong maka cd ke isi dari HOME tapi jika kosong gunakan cd /usr/gas dan set HOME=/usr/gas

• ${variabel:? string}

Jika variabel berisi maka gunakan isi dari varabel, tapi jika variabel kosong maka tampilkan pesan yang terdapat di sebelah ?. Jika string tidak terisi maka yang akan tampil pesan: variabel : parameter null or notset.

Contoh :

• cat ${coba:? 'tidak ada file coba'} • $ {variabel:+ string}

Jika variabel berisi maka gunakan isi dari string sebagai ekspresi. Kalau variabel kosong maka berikan tanda " ". Ingat isi dari variabel tidak akan berubah.

Contoh : • a='stts'

(22)

MENGIRIM ARGUMEN-ARGUMEN KE SHELL PROCEDURE

Jika user mengirimkan argumen-argumen ke shell maka jumlah argumen tersebut akan ditampung di variabel $#, di mana untuk argumen yang pertama akan diwakili $1.

Contoh : # ripple command while test $# != 0 do echo $1 $2 $3 $4 $5 $6 $7 $8 $9 shift done

Perintah shift digunakan untuk menggeser argumen ke kiri, di mana nilai dari $1 akan dikeluarkan, $2 menggantikan $1, $3 menggantikan $2, dan seterusnya.

Perhatikan bahwa $0 tidak pernah digeser, sebab $0 mewakili nama procedure. Ubah program di atas pada bagian echo $1 .. $9 dengan echo $*.

Dua perintah echo di atas mempunyai perbedaan, yang pertama akan mencetak paling banyak 9 parameter posisi, yang kedua akan mencetak semua parameter posisi yang diberikan.

ENVIRONMENT PERINTAH

Semua variabel yang dikenal oleh sebuah perintah pada saat mula-mula perintah dijalankan mempunyai environment tersendiri.

Keyword parameter ialah variabel-variabel yang diletakkan di depan nama dari suatu procedure shell.

Contoh :

# keycommand echo $a $b

Jika user ingin menjalankan perintah keycommand, misalnya : a=key1 b=key2 keycommand

(23)

maka akan ditampilkan key1 key2

Keyword parameter tidak dihitung sebagai argumen-argumen terhadap suatu procedure dan tidak berpengaruh pada variabel $#. Untuk melihat isi dari environment gunakan : printenv atau env

CONTOH PROGRAM SHELL: • MAILALL # mailall letter=$1 shift for i in $* do mail $i < $letter done

Program di atas dapat dijalankan dengan : $ sh mailall letter joe bob

atau dengan memberikan status execute pada file dengan chmod u+x mailall. Lalu jalankan dengan :

$ mailall letter joe bob

Jika mailall diletakkan di dalam directory yang ditunjuk oleh variabel PATH yang terdapat pada .profile maka mailall akan dapat dijalankan dari directory lain.

• COPYPAIRS

# penggunaan copypairs file1 file2 ... # copy file1 ke file2, file3 ke file4 while test "$2" != "" do cp $1 $2 shift; shift done if test "$1" != ""

(24)

then echo "$0: argumen ganjil" > &2 fi

• COPYTO

# pengunaan copyto dir file ... # copy file ke directory if test $# -lt 2

then echo "$0: membutuhkan dua argumen" elif test ! -d $1

then echo "$0: "$1 bukan sebuah directory" else dir=$1; shift

for eachfile

do cp $eachfile $dir done

fi

• WRITEMAIL

# penggunaan : write mail message user # jika user log in

# tulis pesan ke terminal # jika tidak maka tulis ke mail

echo "$1" | { write "$2" || mail "$2" ; } • NULL

# penggunaan : null files

# membuat file kosong untuk setiap nama file for eachfile

do

> $eachfile done

Referensi

Dokumen terkait

The holder of the Customer Fund Account is fully responsible for any consequences arising from the management of the Customer Fund Account by Securities Company or Custodian Bank

Penanganan run off dengan secepat cepatnya cenderung hanya menyelesaikan masalah pada sub DAS tersebut dalam jangka pendek dan akan memberikan resiko banjir

bersangkutan memfokuskan kegiatan masyarakat untuk menghasilkan satu produk yang dipandang merupakan produk unggulan desa (daerah) tersebut (Maramis, 2013 )..  Instruksi Presiden

Dalam persaingan antara Panjalu dengan Kediri, ternyata Kediri yang unggul dan menjadi negara yang besar kekuasaannya. Jayabaya ingin mengembalikan kejayaan seperti

Selain itu ukuran kristal yang diperoleh dari kelima sampel TiO2 yang berskala nanometer, memiliki luas permukaan yang lebih luas yang dapat menampung dye lebih

Informasi dalam dokumen ini didasarkan pada pengetahuan terkini kamidan berlaku untuk produk yang berkaitan dengan tindakan pencegahan dan keselamatan.Itu tidak mewakilimenjamin

Dalam studi manajemen, kehadiran konflik pendidikan tidak bisa terlepas dari permasalahan keseharian yang dirasakan oleh pengelola lembaga pendidikan. Konflik tersebut

Kajian Lingkungan Hidup Strategis yang selanjutnya disingkat KLHS adalah proses mengintegrasikan pembangunan berkelanjutan yang berwawasan lingkungan hidup dalam