Beberapa opsi Bash sudah dikenal dan sering digunakan. Misalnya, banyak yang menulis di awal naskah
  set -o xtrace 
untuk debugging,
  set -o errexit 
untuk keluar karena kesalahan atau
  set -o errunset 
untuk keluar jika variabel yang dipanggil tidak disetel.
Tetapi ada banyak pilihan lain. Kadang-kadang mereka terlalu bingung dijelaskan dalam laki-laki, jadi saya telah mengumpulkan di sini beberapa yang paling berguna, dengan penjelasan.
Catatan: Mac mungkin memiliki versi bash yang lebih lama (3.x, bukan 4.x), di mana tidak semua opsi ini tersedia. Dalam hal ini, lihat di sini atau di sini .set atau shopt ?
Ada dua cara untuk mengatur parameter bash: dari skrip atau dari baris perintah. Anda dapat menggunakan 
shopt set dan 
shopt . Keduanya mengubah perilaku shell, melakukan hal yang sama (dengan argumen yang berbeda), dan berbeda dalam 
asalnya . Parameter 
set diwariskan atau dipinjam dari parameter shell lainnya, sementara parameter 
shopt dibuat dalam bash.
Jika Anda ingin melihat opsi saat ini, jalankan:
 $ set -o $ shopt 
Untuk mengaktifkan opsi di 
set , digunakan sintaks panjang atau pendek:
 $ set -o errunset $ set -e 
Efeknya sama.
Untuk menonaktifkan opsi, Anda harus memberi nilai plus bukannya minus:
 $ set +e 
Untuk waktu yang lama saya tidak dapat mengingat sintaks ini, karena logika tampaknya salah (minus menyalakan opsi, dan plus mematikannya).
shopt menggunakan 
shopt (lebih logis) 
-s (set) dan 
-u (unset) untuk mengaktifkan dan menonaktifkan opsi:
 $ shopt -s cdspell  
Perubahan Direktori
Ada beberapa opsi yang membantu Anda bekerja dengan direktori.
1. cdspell
Dengan pengaturan ini, bash akan mulai memahami kesalahan ketik dan akan memindahkan Anda ke folder yang namanya Anda ketikkan kesalahan.
 $ shopt -s cdspell $ mkdir abcdefg $ cd abcdeg abcdefg $ cd .. 
Saya menggunakan opsi ini selama bertahun-tahun, dan sangat jarang (mungkin setahun sekali) itu membuat keputusan yang sangat aneh. Tetapi di hari-hari lain, 
cdspell menghemat waktu, secara harfiah setiap hari.
2. autocd
Jika Anda tidak siap dengan inefisiensi dari input 
cd berulang, maka Anda dapat mengatur opsi ini untuk pindah ke folder X jika perintah X tidak ada.
 $ shopt -s autocd $ abcdefg $ cd .. 
Dalam kombinasi dengan pelengkapan otomatis, ini memungkinkan Anda untuk dengan cepat beralih ke folder:
 $ ./abc[TAB][RETURN] cd -- ./abcdefg 
Hanya saja, jangan beri 
rm -rf * folder 
rm -rf * (ya, omong-omong, ini mungkin).
3. direxpand
Ini adalah opsi keren yang memperluas variabel lingkungan dengan menekan Tab:
 $ shopt -s direxpand $ ./[TAB]  
Bersihkan pintu keluar
4. checkjobs
Opsi ini menghentikan jalan keluar dari sesi jika pekerjaan masih berjalan di latar belakang.
Alih-alih keluar, daftar tugas yang tidak lengkap ditampilkan. Jika Anda masih ingin keluar, masukkan 
exit lagi.
 $ shopt -s checkjobs $ echo $$ 68125  
Kemampuan Substitusi
5. globstar
Opsi ini memberi Anda kemampuan substitusi supernormal! Jika Anda memasukkan:
 $ shopt -s globstar $ ls ** 
maka shell akan menampilkan semua direktori dan subdirektori secara rekursif.
Dalam kombinasi dengan 
direxpand Anda dapat dengan cepat melihat semuanya di bawah dalam hierarki:
 $ shopt -s direxpand $ ls **[TAB][TAB] Display all 2033 possibilities? (y or n) 
6.extglob
Opsi ini mengaktifkan fungsi yang lebih sering dikaitkan dengan ekspresi reguler. Ini terkadang sangat berguna:
 $ shopt -s extglob $ touch afile bfile cfile $ ls afile bfile cfile $ ls ?(a*|b*) afile bfile $ ls !(a*|b*) cfile 
Di sini, pola ditempatkan dalam tanda kurung dan dipisahkan oleh batang vertikal. Berikut adalah operator yang tersedia:
  ?  = cocok dengan nol atau satu kemunculan pola yang diberikan
 !  = tampilkan semua yang tidak cocok dengan pola yang diberikan
 * = nol atau lebih banyak kejadian
 + = satu atau lebih kejadian
 @ = tepat satu kejadian 
Perlindungan kecelakaan
7. histverkan
Pada awalnya, bisa sedikit menakutkan menggunakan penggunaan perintah mulai cepat dari sejarah singkatan 
!! dan 
!$ .
Opsi 
histverify memungkinkan 
histverify untuk terlebih dahulu melihat bagaimana Bash menginterpretasikan perintah sebelum benar-benar dimulai:
 $ shopt -s histverify $ echo !$  
8. Noclobber
Sekali lagi, untuk melindungi dari kecelakaan, yaitu dari menimpa file yang sudah ada dengan redirect operator ( 
> ). Ini bisa menjadi bencana jika Anda tidak memiliki cadangan.
Opsi 
set - melarang penulisan seperti itu. Jika perlu, Anda dapat memintas perlindungan menggunakan operator 
>| :
 $ touch afile $ set -C $ echo something > afile -bash: afile: cannot overwrite existing file $ echo something >| afile $