Ketika datang ke skrip shell, dua shell yang menonjol sering muncul kedepan: Bourne Shell (SH) dan Bourne Again Shell (Bash). Keduanya merupakan komponen integral dari sistem berbasis Unix dan Linux, menyediakan antarmuka untuk berinteraksi dengan sistem operasi. Artikel ini bertujuan untuk menyelidiki perbedaan rumit antara kedua cangkang ini, mengungkap karakteristik uniknya, dan memberikan analisis komparatif untuk membantu Anda memahami kapan dan mengapa harus menggunakan salah satu di atas yang lain.
AdvertisementApa itu SH dan Bash?
SH, Bourne Shell asli , diperkenalkan pada tahun 1970-an sebagai shell utama untuk Unix. Stephen Bourne di Bell Labs mengembangkannya, karena itulah namanya. SH dikenal karena kesederhanaan dan portabilitasnya. Ini adalah opsi yang andal saat membuat skrip yang dapat dijalankan di berbagai turunan Unix.
Bash, di sisi lain, adalah singkatan dari Bourne Again SHell. Ini adalah versi perbaikan dari SH asli, yang dikembangkan oleh Brian Fox untuk Proyek GNU sebagai pengganti perangkat lunak gratis untuk Bourne Shell. Bash adalah shell default untuk banyak distribusi Linux dan macOS. Ini termasuk fitur dari shell lain seperti KornShell (ksh) dan C shell (csh), menawarkan fungsionalitas yang lebih kuat dan kemampuan scripting. Perbedaan Utama Antara SH dan Bash
Perbedaan Sintaks: Bash menyediakan lebih banyak steno dan peningkatan sintaks scripting dibandingkan dengan SH. Misalnya, di bash, Anda dapat menggunakan sintaks braket kotak ganda [[ ]] untuk pengujian, yang lebih kuat dan lebih aman daripada sintaks braket tunggal [ ] yang digunakan di SH.
# Sintaks SH
if [ $a -lt $b ]; Kemudian
echo “$a kurang dari $b”
fi
# Sintaks Bash
if [[ $a -lt $b ]]; Kemudian
echo “$a kurang dari $b”
fi123456789# SH Syntaxif[$a-lt$b];then  echo”$a kurang dari $b”fi # Bash Syntaxif[[$a-lt$b]];lalu  echo”$a kurang dari $b” variabel fi
Array: Bash mendukung variabel array, sedangkan SH tidak. Array dapat berguna ketika Anda perlu bekerja dengan banyak nilai yang disimpan di bawah satu nama variabel.
# Sintaks Bash
array=(“apel” “pisang” “ceri”)
echo ${array[1]} # Outputs “banana”123# Bash Syntaxarray=(“apple””banana””cherry”)echo${array[1]}Â Â # Outputs “banana”
Pengeditan Baris Perintah: Bash mendukung baris perintah pengeditan, padahal ini bukan standar di SH. Di Bash, Anda dapat menavigasi riwayat perintah menggunakan tombol panah, menghapus teks dengan backspace, dan menggunakan penyelesaian tab untuk melengkapi nama file dan nama perintah.
Opsi Shell: Bash hadir dengan opsi shell tambahan dibandingkan dengan SH. Misalnya, perintah shopt di Bash menyediakan kemampuan untuk mengubah perilaku opsional shell tambahan yang tidak tersedia di SH.
Substitusi Proses: Bash mendukung substitusi proses ((perintah)), memungkinkan input atau output proses dirujuk menggunakan nama file. Fitur ini tidak tersedia di SH.
# Sintaks Bash
diff <(command1) <(command2)12# Bash Syntaxdiff<(command1)<(command2)
Command not found Hook: Bash memiliki fungsi shell khusus command_not_found_handle yang dijalankan ketika perintah tidak ditemukan. Fitur ini tidak tersedia di SH.
Here Strings: Bash mendukung “Here Strings” yang merupakan bentuk pengalihan I/O yang memungkinkan string digunakan sebagai input untuk suatu perintah, dilambangkan dengan
Referensi tecadmin.com