Serupa dengan seri Unix Sed dan Unix Awk yang sedang berjalan, kami akan memposting beberapa artikel tentang skrip Bash, yang akan mencakup semua teknik skrip bash dengan contoh praktis.
Shell adalah sebuah program, yang menginterpretasikan perintah pengguna. Perintah dapat langsung dimasukkan oleh pengguna atau dibaca dari file yang disebut skrip shell.
Shell disebut sebagai shell interaktif, ketika membaca input dari pengguna secara langsung.
Shell disebut sebagai shell non-interaktif, ketika ia membaca perintah dari file dan mengeksekusinya. Dalam hal ini, shell membaca setiap baris file skrip dari atas ke bawah, dan mengeksekusi setiap perintah seolah-olah telah diketik langsung oleh pengguna.
Cetak nilai variabel built in shell $-, untuk mengetahui apakah shell tersebut interaktif atau non-interaktif.
# echo $- himBH
Catatan:variabel $- berisi "i" ketika shell interaktif .
Unix memiliki berbagai Shells. Bourne shell (sh), Bourne lagi shell (bash), C shell (csh), Korn shell (ksh), Tenex C shell (tcsh). Gunakan perintah which atau whereis unix untuk mencari tahu di mana shell tertentu berada seperti yang ditunjukkan di bawah ini.
# which bash /bin/bash # whereis bash bash: /bin/bash /usr/share/man/man1/bash.1.gz
Anda dapat beralih di antara shell, dengan mengetikkan nama shell. Misalnya, ketik csh untuk beralih ke shell C.
Penulisan dan eksekusi skrip shell
Contoh 1. Skrip Hello World Bash
- Buat skrip dengan mengetikkan dua baris berikut ke dalam file menggunakan editor favorit Anda.
- Anda dapat memilih nama apa saja untuk file tersebut. Nama file tidak boleh sama dengan perintah bawaan Unix.
- Skrip selalu dimulai dengan dua karakter '#!' yang disebut sebagai she-bang. Ini untuk menunjukkan bahwa file tersebut adalah skrip, dan harus dijalankan menggunakan interpreter (/bin/bash) yang ditentukan oleh baris pertama lainnya dalam file.
- Jalankan script seperti di bawah ini. Jika Anda mengalami masalah dalam menjalankan skrip shell, lihat tutorial eksekusi skrip shell
- Saat Anda menjalankan perintah “bash helloworld.sh”, shell non-interaktif akan memulai dan meneruskan nama file sebagai argumen ke dalamnya.
- Baris pertama memberi tahu sistem operasi shell mana yang akan muncul untuk mengeksekusi skrip.
- Pada contoh di atas, bash interpreter yang menginterpretasikan skrip dan mengeksekusi perintah satu per satu dari atas ke bawah.
- Anda bahkan dapat menjalankan skrip, tanpa diawali "bash" dengan:
- Ubah izin skrip agar Anda (Pengguna) dapat menjalankannya, dengan menggunakan perintah “chmod u+x helloworld.sh”.
- Direktori yang berisi skrip harus disertakan dalam variabel lingkungan PATH. Jika tidak disertakan, Anda dapat menjalankan skrip dengan menentukan jalur absolut skrip.
- echo adalah perintah yang hanya menampilkan argumen yang kita berikan padanya. Ini juga digunakan untuk mencetak nilai variabel.
$ cat helloworld.sh #!/bin/bash echo Hello World
$ bash helloworld.sh Hello World
File Bash-Startup
Seperti yang telah kita bahas sebelumnya dalam urutan eksekusi untuk .bash_profile dan artikel file terkait, ketika bash dipanggil sebagai shell interaktif, bash pertama kali membaca dan mengeksekusi perintah dari /etc/profile. Jika /etc/profile tidak ada, ia membaca dan menjalankan perintah dari ~/.bash_profile, ~/.bash_login dan ~/.profile dalam urutan yang diberikan. Opsi –noprofile dapat digunakan ketika shell mulai menghambat perilaku ini.
Biasanya bash_profile Anda mengeksekusi ~/.bashrc. Jika Anda suka, Anda dapat menampilkan pesan selamat datang. Ini hanya berjalan ketika Anda pertama kali masuk. Anda dapat mengekspor variabel apa pun yang Anda inginkan, dan Anda dapat mengatur alias yang akan berjalan dan tersedia setelah Anda membuka shell. Saat shell login keluar, Bash membaca dan menjalankan perintah dari file ~/.bash_logout.
Contoh 2. Cetak pesan selamat datang saat Anda login
Ketik konten berikut di file bash_profile Anda. Jika file tidak ada, buat file dengan konten di bawah ini.
$ cat ~/.bash_profile hname=`hostname` echo "Welcome on $hname."
Saat Anda login ke shell interaktif, Anda akan melihat pesan selamat datang seperti yang ditunjukkan di bawah ini.
login as: root root@dev-db's password: Welcome on dev-db
Contoh 3. Cetak informasi terkait sistem
Saat Anda login ke shell interaktif, Anda dapat menampilkan nama kernel yang diinstal di server, versi bash, waktu aktif dan waktu di server.
$cat ~/.bash_profile hname=`hostname` echo "Welcome on $hname." echo -e "Kernel Details: " `uname -smr` echo -e "`bash --version`" echo -ne "Uptime: "; uptime echo -ne "Server time : "; date
Saat Anda meluncurkan shell interaktif, shell akan mencetak pesan seperti yang ditunjukkan di bawah ini.
login as: root root@dev-db's password: Welcome on dev-db Kernel Information: Linux 2.6.18-128 x86_64 GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc. Uptime: 11:24:01 up 21 days, 13:15, 3 users, load average: 0.08, 0.18, 0.11 Server time : Tue Feb 22 11:24:01 CET 2010
Contoh 4. Cetak detail login terakhir
Jika beberapa pengguna menggunakan mesin yang sama dengan login yang sama, maka detail seperti mesin dari mana login terakhir terjadi, dan waktu saat mereka login, akan menjadi detail yang paling berguna. Contoh ini mencetak detail login terakhir selama awal shell interaktif.
$ cat ~/.bash_profile hname=`hostname` echo "Welcome on $hname."echo -e "Kernel Details: " `uname -smr` echo -e "`bash --version`" echo -ne "Uptime: "; uptime echo -ne "Server time : "; datelog terakhir | grep "akar" | awk {'print "Login terakhir dari :"$3
print "Tanggal &Waktu Login Terakhir:",$4,$5,$6,$7,$8,$9;}'
Saat memulai, Anda akan mendapatkan pesan seperti di bawah ini.login as: root root@dev-db's password: Welcome on dev-dbKernel Information: Linux 2.6.18-128 x86_64 GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc. Uptime: 11:24:01 up 21 days, 13:15, 3 users, load average: 0.08, 0.18, 0.11 Server time : Tue Feb 22 11:24:01 CET 2010Login terakhir dari :sasikala-laptop
Tanggal &Waktu Login Terakhir:Sel 22 Feb 11:24:01 +0100 2010
Contoh 5. Ekspor variabel dan setel alias selama start-up
Perintah paling umum yang akan Anda gunakan di file .bashrc dan .bash_profile adalah perintah ekspor dan alias.
Alias hanya mengganti satu bagian teks dengan yang lain. Saat Anda menjalankan alias, itu hanya mengganti apa yang Anda ketikkan dengan alias yang sama. Misalnya, jika Anda ingin mengatur alias untuk perintah ls untuk membuat daftar file/folder dengan warna, lakukan hal berikut:
alias ls 'ls --color=tty'Jika Anda menambahkan perintah ini ke salah satu file start-up, Anda dapat menjalankan perintah ls, yang secara otomatis akan diganti dengan perintah ls –color=tty.
Perintah ekspor digunakan untuk mengatur variabel lingkungan. Berbagai variabel lingkungan digunakan oleh sistem, atau aplikasi lain. Mereka hanyalah cara mengatur parameter yang dapat dibaca oleh aplikasi/skrip apa pun. Jika Anda menyetel variabel tanpa perintah ekspor, variabel itu hanya ada untuk proses tertentu.
Dalam contoh di bawah ini, ia mengekspor variabel lingkungan HISTSIZE. Baris yang dimulai dengan # adalah baris komentar.
$ cat /etc/profile alias ls 'ls --color=tty' # Setup some environment variables. export HISTSIZE=1000 PATH=$PATH:$HOME/bin:/usr/bin:/bin/usr:/sbin/etc export PATH export SVN_SH=${SVN_RSH-ssh}
Cara Mengonversi Dokumen Teks ke Ucapan di Ubuntu Menggunakan eSpeak Cobol Hello World Contoh:Cara Menulis, Mengkompilasi dan Menjalankan Program Cobol di OS LinuxLinux