Bash, singkatan dari "Bourne Again SHell," adalah shell Unix dan bahasa perintah yang berfungsi sebagai interpreter perintah untuk sistem operasi dan bahasa pemrograman untuk menulis skrip shell. Dibuat sebagai pengganti Bourne Shell (sh), Bash menggabungkan fitur dari Korn Shell (ksh) dan C Shell (csh), menjadikannya alat yang kuat dan serbaguna untuk tugas baris perintah dan skrip. Bash banyak digunakan di berbagai distribusi Linux, macOS, dan sistem operasi mirip Unix lainnya, dan berfungsi sebagai shell default di banyak sistem.
Bash dikembangkan oleh Brian Fox untuk Proyek GNU pada tahun 1987 sebagai pengganti perangkat lunak gratis untuk Bourne Shell (sh). Tujuannya adalah untuk memberikan pengguna shell yang lebih kaya fitur sambil mempertahankan kompatibilitas dengan skrip sh yang ada. Selama bertahun-tahun, Bash telah berkembang melalui kontribusi dari banyak pengembang, dan pertumbuhannya didorong oleh meningkatnya popularitas Linux dan perangkat lunak sumber terbuka.
Pada tahun-tahun awalnya, Bash dengan cepat mendapatkan perhatian di kalangan pengguna dan pengembang karena kemampuannya untuk diperluas dan kumpulan fitur kaya yang diperkenalkannya. Fitur kunci termasuk pengeditan baris perintah, kontrol pekerjaan, dan kemampuan skrip yang ditingkatkan. Saat ini, Bash secara aktif dipelihara, dengan versi 5.2 dirilis pada September 2021. Ini terus menjadi alat standar bagi administrator sistem, pengembang, dan siapa pun yang bekerja dengan sistem operasi mirip Unix.
Bash telah mengambil inspirasi dari beberapa shell dan bahasa pemrograman lainnya. Sintaks dan struktur perintah dari Korn Shell (ksh) dan C Shell (csh) sangat mempengaruhi desainnya. Selain itu, fitur bahasa perintahnya memudahkan integrasi dengan bahasa pemrograman seperti Python dan Ruby, yang sering digunakan dalam skrip untuk meningkatkan fungsionalitas.
Bash banyak digunakan untuk skrip dan mengotomatisasi tugas sistem, mengelola instalasi perangkat lunak, melakukan tugas administrasi sistem, dan menangani pekerjaan pemrosesan data. Ini terintegrasi ke dalam alur kerja pengembangan banyak aplikasi perangkat lunak dan pipeline CI/CD, serta dalam lingkungan cloud dan praktik DevOps.
Bash mendukung penugasan variabel tanpa deklarasi tipe sebelumnya. Misalnya:
name="World"
echo "Hello, $name!"
Bash mencakup pernyataan kondisional seperti if-else untuk kontrol alur:
if [ "$name" == "World" ]; then
echo "Hello, World!"
else
echo "Hello, Stranger!"
fi
Bash memungkinkan penggunaan loop seperti for
, while
, dan until
. Berikut adalah contoh loop for
:
for i in {1..5}; do
echo "Iterasi $i"
done
Anda dapat mendefinisikan dan memanggil fungsi di Bash:
greet() {
echo "Hello, $1!"
}
greet "User"
Bash mendukung substitusi perintah menggunakan backticks atau $(...)
:
today=$(date)
echo "Hari ini adalah $today"
Bash mendukung array satu dimensi yang terindeks:
fruits=("apel" "pisang" "ceri")
echo "Buah pertama: ${fruits[0]}"
Bash menyediakan fitur manipulasi string seperti ekstraksi substring:
text="Hello World"
echo ${text:6:5} # Menghasilkan "World"
Bash memungkinkan operasi aritmatika dasar menggunakan $((...))
:
result=$((5 + 3))
echo "Hasilnya adalah $result"
Anda dapat mengalihkan input dan output di Bash:
echo "Hello" > output.txt
Bash memungkinkan penggunaan dokumen di dalam untuk input multi-baris, memudahkan untuk mengirim string multi-baris ke perintah:
cat << EOF
Ini adalah string multi-baris.
EOF
Sementara skrip Bash dapat diedit di editor teks mana pun, beberapa lingkungan pengembangan terintegrasi (IDE) menawarkan dukungan untuk Bash. Ini termasuk Visual Studio Code, Atom, Sublime Text, dan Eclipse dengan plugin.
Skrip Bash diinterpretasikan daripada dikompilasi, dengan interpreter Bash itu sendiri yang menjalankan skrip. Perintah untuk menjalankan skrip adalah:
bash script.sh
Untuk membangun proyek, biasanya dibuat Makefile menggunakan make
, atau menggunakan skrip Bash untuk mengotomatisasi tugas seperti instalasi atau penyebaran.
Bash digunakan di berbagai domain, termasuk:
Bash menemukan perbandingan terdekatnya dalam bahasa seperti Python dan Perl untuk skrip, sementara dapat dibandingkan dengan bahasa tujuan umum lainnya seperti C atau Java dalam kasus penggunaan tertentu.
Bash unggul dalam interaksi baris perintah dan tugas sistem, sementara Python lebih serbaguna untuk tugas pemrograman kompleks, pemrosesan data, dan pengembangan aplikasi. Python menawarkan pustaka standar yang kaya yang membuatnya cocok untuk aplikasi yang lebih besar.
Perl sering digunakan untuk pemrosesan teks dan tugas administrasi sistem; namun, ia memiliki sintaks yang lebih kompleks dibandingkan dengan Bash. Bash fokus pada eksekusi perintah, sementara Perl lebih berorientasi pada pemrograman.
JavaScript terutama adalah bahasa web sisi klien, sementara Bash berfungsi sebagai interpreter perintah dan pemroses skrip untuk operasi sistem. Bash tidak cocok untuk pengembangan web, sementara JavaScript unggul di bidang itu.
Saat menerjemahkan skrip Bash ke bahasa lain, pastikan untuk memvalidasi perintah yang setara dan memeriksa ketergantungan pada fitur tingkat sistem. Alat seperti sh2py
ada yang dapat mengonversi skrip shell ke Python, tetapi perbedaan semantik harus dikelola dengan hati-hati.
Ada beberapa alat yang tersedia untuk penerjemahan sumber ke sumber, termasuk: