Perbedaan antara sh dan bash

Ketika menulis program shell, kita sering menggunakan /bin/sh dan /bin/bash. Saya biasanya menggunakan bash, tapi aku don't tahu apa yang's perbedaan antara mereka.

Apa's perbedaan utama antara bash dan sh?

Apa yang kita perlu menyadari ketika pemrograman di bash dan sh?

Mengomentari pertanyaan (3)

Apa sh

sh (atau Shell Command Language) merupakan sebuah bahasa pemrograman yang dijelaskan oleh POSIX standar. Ini memiliki banyak implementasi (ksh88, dash, ...). bash juga dapat dianggap sebagai implementasi dari sh (lihat di bawah).

Karena sh adalah keterangan, bukan penerapan, /bin/sh adalah sebuah symlink (atau hard link) untuk implementasi aktual pada kebanyakan sistem POSIX.

Apa bash

bash dimulai sebagai sebuah sh-yang kompatibel pelaksanaan (meskipun itu mendahului standar POSIX dengan beberapa tahun), tetapi seiring waktu berlalu ia telah memperoleh banyak ekstensi. Banyak dari ekstensi ini dapat mengubah perilaku valid POSIX shell script, sehingga dengan sendirinya bash adalah tidak sah POSIX shell. Sebaliknya, itu adalah dialek dari POSIX shell bahasa.

bash mendukung --posix switch, yang membuatnya lebih POSIX-compliant. Hal ini juga mencoba untuk meniru POSIX jika dipanggil sebagai sh.

sh = bash?

Untuk waktu yang lama, /bin/sh digunakan untuk menunjuk ke /bin/bash pada kebanyakan sistem GNU/Linux. Akibatnya, hal itu telah hampir menjadi aman untuk mengabaikan perbedaan antara keduanya. Tapi yang mulai berubah baru-baru ini.

Beberapa contoh populer dari sistem di mana /bin/sh tidak menunjuk ke /bin/bash (dan beberapa di antaranya /bin/bash bahkan mungkin tidak ada) adalah:

  1. Modern Debian dan Ubuntu sistem, yang symlink sh untuk lari secara default;
  2. Busybox, yang biasanya berjalan pada sistem Linux boot waktu sebagai bagian dari initramfs. Ia menggunakan abu shell implementasi.
  3. BSDs, dan pada umumnya setiap non-Linux sistem. OpenBSD menggunakan pdksh, keturunan dari Korn shell. FreeBSD's sh adalah keturunan dari UNIX asli Bourne shell. Solaris memiliki sendiri sh yang untuk waktu yang lama tidak POSIX-compliant; implementasi bebas tersedia dari Pusaka proyek.

Bagaimana anda bisa mengetahui apa /bin/sh poin untuk sistem anda?

Komplikasi adalah bahwa /bin/sh bisa menjadi sebuah link simbolik atau hard link. Jika itu's simbolik link, portable cara untuk mengatasinya adalah:

% file -h /bin/sh
/bin/sh: symbolic link to bash

Jika itu's a hard link, coba

% find -L /bin -samefile /bin/sh
/bin/sh
/bin/bash

Dalam kenyataannya, - L bendera mencakup baik symlink dan hardlinks, namun kelemahan dari metode ini adalah bahwa hal itu tidak portabel — POSIX tidak memerlukan menemukan mendukung -samefile pilihan, meskipun kedua GNU menemukan dan FreeBSD menemukan dukungan itu.

Shebang baris

Pada akhirnya, itu's terserah anda untuk memutuskan mana yang akan digunakan, dengan menulis «peristiwa» line.

E. g.

#!/bin/sh

akan menggunakan sh (dan apa pun yang terjadi pada titik ke titik),

#!/bin/bash

akan menggunakan /bin/bash jika's yang tersedia (dan gagal dengan pesan kesalahan jika itu's tidak). Tentu saja, anda juga dapat menentukan implementasi lain, misalnya

#!/bin/dash

Mana yang akan digunakan

Untuk saya sendiri script, saya lebih memilih sh untuk alasan berikut:

  • ini adalah standar
  • hal ini jauh lebih sederhana dan lebih mudah untuk belajar
  • hal ini portabel di sistem POSIX — bahkan jika mereka kebetulan tidak memiliki bash, mereka dituntut untuk memiliki sh

Ada keuntungan untuk menggunakan bash juga. Fitur yang membuat pemrograman lebih mudah dan mirip dengan pemrograman dalam bahasa pemrograman modern lainnya. Ini termasuk hal-hal seperti cakupan lokal variabel dan array. Polos sh adalah sangat minimalis bahasa pemrograman.

Komentar (18)

sh: http://man.cx/sh bash: http://man.cx/bash

TL;DR: bash adalah superset dari sh dengan lebih elegan sintaks dan fungsi yang lebih. Hal ini aman untuk digunakan bash shebang baris di hampir semua kasus seperti itu's cukup di mana-mana pada platform modern.

NB: dalam beberapa lingkungan, sh adalah bash. Periksa sh --version.

Komentar (4)

Pertanyaan ini telah sering dinominasikan sebagai kanonik bagi orang-orang yang mencoba untuk menggunakan sh dan terkejut bahwa itu's tidak berperilaku sama seperti bash. Berikut ini's cepat ikhtisar dari kesalahpahaman umum dan perangkap.

Pertama, anda harus memahami apa yang diharapkan.

  • Jika anda menjalankan script dengan sh scriptname, atau menjalankannya dengan scriptname dan memiliki #!/bin/sh di peristiwa line, anda harus mengharapkan POSIX sh perilaku.
  • Jika anda menjalankan script dengan bash scriptname, atau menjalankannya dengan scriptname dan memiliki #!/bin/bash (atau setara) dalam peristiwa line, anda harus mengharapkan Bash perilaku.

Setelah benar-benar shebang dan menjalankan script hanya dengan mengetikkan nama script (mungkin dengan relatif atau full path) umumnya solusi yang lebih disukai. Selain memperbaiki shebang, ini membutuhkan file script untuk mengeksekusi izin (chmod+x scriptname).

Jadi, bagaimana mereka benar-benar berbeda?

Bash Referensi manual memiliki bagian yang mencoba untuk menghitung differences tapi beberapa sumber umum dari kebingungan mencakup

  • [[ tidak tersedia di sh (hanya [ yang lebih kikuk dan terbatas).
  • sh tidak memiliki array.
  • Beberapa Bash kata kunci seperti lokal, sumber, fungsi, shopt, membiarkan, menyatakan, dan pilih tidak portabel untuk sh. (Beberapa sh implementasi dukungan misal lokal.)
  • Bash memiliki banyak C-gaya sintaks ekstensi seperti tiga argumen untuk((i=0;i<=3;i++)) loop, += kenaikan tugas, dll. The $&#39;string\nwith\tC\aescapes&#39; fitur tentatif diterima untuk POSIX (yang berarti bekerja di Bash sekarang, tetapi belum didukung oleh sh pada sistem yang hanya mengikuti arus POSIX spesifikasi, dan kemungkinan besar tidak akan untuk beberapa waktu yang akan datang).
  • Bash mendukung <<<&#39;di sini string&#39;.
  • Bash telah *.{png,jpg} dan {0..12} brace ekspansi.
  • ~ mengacu pada $HOME hanya di Bash (dan lebih umumnya ~username ke direktori home dari username).Ini adalah di POSIX, tapi mungkin hilang dari beberapa pra-POSIX /bin/sh implementasi.
  • Bash memiliki proses substitusi dengan <(cmd) dan >(cmd).
  • Bash telah Csh-gaya kemudahan pengalihan alias suka &| untuk 2>&1 | dan &> untuk > ... 2>&1
  • Bash mendukung coprocesses dengan <> pengalihan.
  • Bash fitur kaya set diperluas non-standar parameter ekspansi seperti ${substring:1:2}, ${variabel/pola/replacement}, kasus konversi, dll.
  • Bash secara signifikan telah diperpanjang fasilitas untuk shell aritmatika (meskipun masih ada floating-point dukungan). Ada yang lapuk warisan $[ekspresi] sintaks yang namun harus diganti dengan POSIX aritmatika $((ekspresi)) sintaks. (Beberapa warisan pra-POSIX sh implementasi mungkin tidak mendukung itu, meskipun.)
  • Sihir variabel seperti $ACAK, $DETIK, $PIPESTATUS[@] dan $FUNCNAME adalah Bash ekstensi.
  • Sintaksis perbedaan seperti ekspor variabel=nilai dan [ "x" == "y" ] yang tidak portabel (ekspor variabel harus terpisah dari variabel tugas, dan portabel perbandingan string di [ ... ] menggunakan satu tanda sama dengan).
  • Banyak, banyak Bash-hanya ekstensi untuk mengaktifkan atau menonaktifkan opsional perilaku dan mengekspos keadaan internal dari shell.
  • Banyak, banyak fitur kenyamanan untuk digunakan interaktif yang namun tidak mempengaruhi perilaku skrip.

Ingat, ini adalah sebuah ringkasan daftar. Lihat manual referensi untuk sendok penuh, dan http://mywiki.wooledge.org/Bashism selama bertahun-baik workarounds; dan/atau mencoba http://shellcheck.net/ yang memperingatkan selama bertahun-Bash-satunya fitur.

Sebuah kesalahan umum adalah untuk memiliki #!/bin/bash shebang line, tapi kemudian tetap menggunakan sh scriptname untuk benar-benar menjalankan script. Ini pada dasarnya menonaktifkan setiap Bash-satunya fungsi, sehingga anda mendapatkan kesalahan sintaks misalnya untuk mencoba untuk menggunakan array. (Yang shebang baris sintaksis komentar, jadi itu hanya diabaikan dalam skenario ini.)

Sayangnya, Bash tidak akan memperingatkan anda ketika anda mencoba untuk menggunakan konstruksi ini ketika itu dipanggil sebagai sh. Itu doesn't benar-benar menonaktifkan semua Bash-satunya fungsi, baik, agar menjalankan Bash dengan menerapkan it sebagai sh adalah bukan cara yang baik untuk memeriksa apakah naskah anda benar portabel untuk ash/dash/POSIX sh atau varian seperti Pusaka sh

Komentar (2)

Posting dari UNIX.COM

*Shellfitur

Tabel ini mencantumkan berbagai fitur yang saya pikir akan membuat anda memilih salah satu shell atas yang lain. Hal ini tidak dimaksudkan untuk menjadi daftar definitif dan tidak termasuk setiap fitur yang mungkin untuk setiap kemungkinan shell. Fitur ini hanya dianggap berada dalam shell jika dalam versi yang datang dengan sistem operasi, atau jika sudah tersedia seperti yang dikumpulkan langsung dari distribusi standar. Khususnya C shell yang ditentukan di bawah ini yang tersedia pada SUNOS 4.*, sejumlah besar vendor sekarang kapal baik tcsh atau mereka sendiri yang disempurnakan C shell bukan (mereka don't selalu membuatnya jelas bahwa mereka adalah pengiriman tcsh.

Kode:

                                     sh   csh  ksh  bash tcsh zsh  rc   es
Job control                          N    Y    Y    Y    Y    Y    N    N
Aliases                              N    Y    Y    Y    Y    Y    N    N
Shell functions                      Y(1) N    Y    Y    N    Y    Y    Y
"Sensible" Input/Output redirection  Y    N    Y    Y    N    Y    Y    Y
Directory stack                      N    Y    Y    Y    Y    Y    F    F
Command history                      N    Y    Y    Y    Y    Y    L    L
Command line editing                 N    N    Y    Y    Y    Y    L    L
Vi Command line editing              N    N    Y    Y    Y(3) Y    L    L
Emacs Command line editing           N    N    Y    Y    Y    Y    L    L
Rebindable Command line editing      N    N    N    Y    Y    Y    L    L
User name look up                    N    Y    Y    Y    Y    Y    L    L
Login/Logout watching                N    N    N    N    Y    Y    F    F
Filename completion                  N    Y(1) Y    Y    Y    Y    L    L
Username completion                  N    Y(2) Y    Y    Y    Y    L    L
Hostname completion                  N    Y(2) Y    Y    Y    Y    L    L
History completion                   N    N    N    Y    Y    Y    L    L
Fully programmable Completion        N    N    N    N    Y    Y    N    N
Mh Mailbox completion                N    N    N    N(4) N(6) N(6) N    N
Co Processes                         N    N    Y    N    N    Y    N    N
Builtin artithmetic evaluation       N    Y    Y    Y    Y    Y    N    N
Can follow symbolic links invisibly  N    N    Y    Y    Y    Y    N    N
Periodic command execution           N    N    N    N    Y    Y    N    N
Custom Prompt (easily)               N    N    Y    Y    Y    Y    Y    Y
Sun Keyboard Hack                    N    N    N    N    N    Y    N    N
Spelling Correction                  N    N    N    N    Y    Y    N    N
Process Substitution                 N    N    N    Y(2) N    Y    Y    Y
Underlying Syntax                    sh   csh  sh   sh   csh  sh   rc   rc
Freely Available                     N    N    N(5) Y    Y    Y    Y    Y
Checks Mailbox                       N    Y    Y    Y    Y    Y    F    F
Tty Sanity Checking                  N    N    N    N    Y    Y    N    N
Can cope with large argument lists   Y    N    Y    Y    Y    Y    Y    Y
Has non-interactive startup file     N    Y    Y(7) Y(7) Y    Y    N    N
Has non-login startup file           N    Y    Y(7) Y    Y    Y    N    N
Can avoid user startup files         N    Y    N    Y    N    Y    Y    Y
Can specify startup file             N    N    Y    Y    N    N    N    N
Low level command redefinition       N    N    N    N    N    N    N    Y
Has anonymous functions              N    N    N    N    N    N    Y    Y
List Variables                       N    Y    Y    N    Y    Y    Y    Y
Full signal trap handling            Y    N    Y    Y    N    Y    Y    Y
File no clobber ability              N    Y    Y    Y    Y    Y    N    F
Local variables                      N    N    Y    Y    N    Y    Y    Y
Lexically scoped variables           N    N    N    N    N    N    N    Y
Exceptions                           N    N    N    N    N    N    N    Y

Key untuk tabel di atas.

Y Fitur dapat dilakukan dengan menggunakan shell ini.

N Fitur ini tidak hadir dalam shell.

Fitur F hanya dapat dilakukan dengan menggunakan fungsi kerang mekanisme.

L readline perpustakaan harus dihubungkan ke shell untuk mengaktifkan Fitur ini.

Catatan untuk tabel di atas

1. This feature was not in the original version, but has since become
   almost standard.
2. This feature is fairly new and so is often not found on many
   versions of the shell, it is gradually making its way into
   standard distribution.
3. The Vi emulation of this shell is thought by many to be
   incomplete.
4. This feature is not standard but unofficial patches exist to
   perform this.
5. A version called 'pdksh' is freely available, but does not have
   the full functionality of the AT&T version.
6. This can be done via the shells programmable completion mechanism.
7. Only by specifying a file via the ENV environment variable.
Komentar (9)

Shell adalah sebuah antarmuka antara pengguna dan OS untuk akses ke sebuah sistem operasi yang's layanan. Hal ini dapat berupa GUI atau CLI (Command Line interface).

sh (Bourne shell) adalah sebuah shell command-line interpreter, untuk Unix/Unix-seperti sistem operasi. Ini menyediakan beberapa built-in perintah. Dalam bahasa scripting kami menunjukkan interpreter sebagai #!/bin/sh. Itu adalah salah satu yang paling banyak didukung oleh kerang lainnya seperti bash (free/open), kash (tidak gratis).

Bash (Bourne akeuntungan sneraka) adalah pengganti shell untuk Bourne shell. Bash adalah superset dari sh. Bash mendukung sh. POSIX adalah satu set standar yang mendefinisikan bagaimana POSIX-compliant sistem harus bekerja. Bash adalah tidak benar-benar POSIX-compliant shell. Dalam sebuah bahasa scripting kami menunjukkan interpreter sebagai #!/bin/bash.

Analogi:

  • Shell adalah seperti sebuah antarmuka atau spesifikasi atau API.
  • sh adalah kelas yang mengimplementasikan antarmuka Shell.
  • Bash adalah sebuah subclass dari sh.

Komentar (2)

TERMINAL

  • program(s) yang menempatkan jendela di atas
  • xterm, rxvt, konsole, kvt, gnome-terminal, nxterm, dan eterm.

SHELL

  • Adalah program yang berjalan di terminal
  • Shell adalah command interpreter dan bahasa pemrograman
  • Shell hanya makro prosesor yang mengeksekusi perintah-perintah.
  • Macro processor berarti fungsi di mana teks dan simbol-simbol yang diperluas untuk membuat ekspresi yang lebih besar.

SH Vs. BASH

SH

  • (SHell)
  • Khusus shell
  • command interpreter dan bahasa pemrograman
  • Pendahulu dari BASH

BASH

  • (Bourne-Again SHell)
  • Khusus shell
  • command interpreter dan bahasa pemrograman
  • Memiliki sh fungsi dan lebih
  • Penerus dari SH
  • BASH adalah SHELL default

BAHAN REFERENSI:

SHELL gnu.org:

Pada dasarnya, a shell hanya makro prosesor yang mengeksekusi perintah. Istilah macro processor berarti fungsi di mana teks dan simbol-simbol yang diperluas untuk membuat ekspresi yang lebih besar.

Unix shell adalah command interpreter dan bahasa pemrograman. Sebagai penerjemah perintah, shell menyediakan antarmuka pengguna untuk seperangkat utilitas GNU. Bahasa pemrograman yang memungkinkan utilitas ini akan digabungkan. File yang berisi perintah-perintah yang dapat buat, dan menjadi perintah sendiri. Ini perintah baru memiliki status yang sama sebagai sistem perintah dalam direktori seperti /bin, yang memungkinkan pengguna atau kelompok untuk membangun kustom lingkungan untuk mengotomatisasi mereka tugas-tugas umum.

Kerang dapat digunakan secara interaktif atau non-interaktif. Dalam interaktif mode, mereka menerima masukan diketik dari keyboard. Ketika menjalankan non-interaktif, kerang menjalankan perintah yang dibaca dari file.

shell memungkinkan pelaksanaan uji coba perintah, keduanya serentak dan asynchronously. Shell menunggu sinkron perintah untuk menyelesaikan sebelum menerima banyak masukan; asynchronous terus mengeksekusi perintah di paralel dengan shell sementara itu membaca dan mengeksekusi tambahan perintah. Pengalihan konstruksi izin kontrol fine-grained dari input dan output dari perintah-perintah tersebut. Selain itu, shell memungkinkan kontrol atas isi dari perintah' lingkungan.

Kerang juga menyediakan satu set kecil built-in perintah (builtins) melaksanakan fungsi mustahil atau tidak nyaman untuk mendapatkan melalui terpisah utilitas. Misalnya, cd, break, continue, dan exec tidak dapat dilaksanakan di luar shell karena mereka secara langsung memanipulasi shell itu sendiri. Sejarah, getopts, membunuh, atau pwd builtins, antara lain-lain, dapat dilaksanakan secara terpisah utilitas, tetapi mereka lebih nyaman untuk digunakan sebagai builtin perintah. Semua shell builtins adalah dijelaskan dalam bagian berikutnya.

Saat mengeksekusi perintah-perintah yang penting, sebagian besar kekuasaan (dan kompleksitas) dari kerang adalah karena mereka tertanam bahasa pemrograman. Seperti bahasa tingkat tinggi, shell menyediakan variabel, aliran kontrol konstruksi, mengutip, dan fungsi.

Kerang menawarkan fitur yang ditujukan khusus untuk digunakan interaktif agak dari untuk menambah bahasa pemrograman. Ini interaktif fitur memiliki kontrol pekerjaan, baris perintah editing, sejarah perintah dan alias. Masing-masing fitur ini dijelaskan dalam manual ini.

BASH gnu.org:

Bash adalah shell, atau perintah penerjemah bahasa, untuk uji coba sistem operasi. Nama ini merupakan singkatan untuk 'Bourne-Again SHell', pun pada Stephen Bourne, penulis nenek moyang langsung dari saat ini Unix shell sh, yang muncul dalam Edisi Ketujuh Bell Labs Penelitian versi dari Unix.

Bash sebagian besar kompatibel dengan sh dan dilengkapi dengan fitur yang berguna dari Korn shell ksh dan C shell csh. Hal ini dimaksudkan untuk menjadi konforman pelaksanaan IEEE POSIX Shell dan alat-Alat porsi IEEE POSIX spesifikasi (Standar IEEE 1003.1). Hal ini perbaikan fungsional dari sh untuk interaktif dan pemrograman gunakan.

Sedangkan sistem operasi GNU menyediakan kerang lainnya, termasuk versi csh, Bash adalah shell default. Seperti perangkat lunak GNU, Bash cukup portabel. Saat ini berjalan pada hampir setiap versi dari Unix dan beberapa sistem operasi lain - mandiri-didukung port ada untuk MS-DOS, OS/2, dan platform Windows.

Komentar (0)

Jawaban yang lain umumnya menunjukkan perbedaan antara Bash dan POSIX shell standar. Namun, ketika menulis portable script shell dan digunakan untuk Bash sintaks, daftar khas bashisms dan murni sesuai POSIX solusi ini sangat berguna. Seperti daftar yang telah disusun ketika Ubuntu beralih dari Bash untuk Dash sebagai default shell sistem dan dapat ditemukan di sini: https://wiki.ubuntu.com/DashAsBinSh

Selain itu, ada alat yang disebut checkbashisms yang memeriksa bashisms di script anda dan datang berguna ketika anda ingin memastikan bahwa naskah anda adalah portabel.

Komentar (1)

/bin/sh mungkin atau tidak mungkin memanggil program yang sama seperti /bin/bash.

sh mendukung setidaknya fitur yang dibutuhkan oleh POSIX (dengan asumsi pelaksanaan yang benar). Hal ini dapat mendukung ekstensi juga.

bash, "Bourne Again Shell", mengimplementasikan fitur yang diperlukan untuk sh plus bash-ekstensi tertentu. Set lengkap ekstensi terlalu panjang untuk menjelaskan di sini, dan itu bervariasi dengan rilis baru. Perbedaan yang didokumentasikan dalam bash manual. Jenis info bash dan baca "Bash Fitur" bagian (bagian 6 dalam versi saat ini), atau membaca saat ini dokumentasi online.

Komentar (2)

bash dan sh adalah dua kerang yang berbeda. Pada dasarnya bash sh, dengan lebih banyak fitur dan lebih baik sintaks. Sebagian besar perintah kerja yang sama, tapi mereka berbeda.Bash (bash) adalah salah satu dari banyak tersedia (namun yang paling umum digunakan) Unix kerang. Bash merupakan singkatan dari "Bourne Again SHell",dan penggantian/perbaikan asli Bourne shell (sh).

Shell scripting merupakan script di setiap shell, sedangkan Bash scripting merupakan script khusus untuk Bash. Dalam prakteknya, bagaimanapun, "shell script" dan "bash script" sering digunakan secara bergantian, kecuali shell dalam pertanyaan tidak Bash.

Setelah mengatakan itu, anda harus menyadari /bin/sh pada kebanyakan sistem akan menjadi sebuah link simbolik dan tidak akan memanggil sh. Di Ubuntu /bin/sh digunakan untuk link ke pesta, perilaku khas pada distribusi Linux, tapi sekarang telah berubah untuk menghubungkan ke shell lain yang disebut dash. Saya akan menggunakan bash, karena itu cukup banyak standar (atau setidaknya yang paling umum, dari pengalaman saya). Pada kenyataannya, masalah timbul ketika sebuah bash script yang akan digunakan #!/bin/sh karena script-pembuat mengasumsikan link ini untuk bash ketika itu doesn't harus.

Komentar (0)

sh adalah (lebih atau kurang) sebuah subset dari bash.

sh berasal dari POSIX (Portable Operating System Interface) yang bertujuan untuk menyatukan unix/linux lebih dari satu bahasa yang sama dll. Yang umum, portable, bahasa adalah sh, dan's kedua distandarisasi oleh IEEE dan tersedia pada setiap linux/unix (alias "POSIX compatible") mesin.

bash yang sedikit lebih baru dari sh, dan berusaha untuk menjadi POSIX compatible (sehingga's dirancang untuk menjalankan sh script) dan tersedia di hampir semua linux/unix mesin dan biasanya digunakan secara default.

Komentar (0)

Sistem operasi Linux yang menawarkan berbagai jenis shell. Meskipun kerang memiliki banyak perintah yang sama, masing-masing jenis memiliki fitur unik. Mari kita belajar berbeda dari sebagian besar digunakan kerang.

Sh shell:

Sh shell juga dikenal sebagai Bourne Shell. Sh shell adalah shell pertama yang dikembangkan untuk Unix komputer oleh Stephen Bourne dari AT&T's Bell Labs pada tahun 1977. Ini mencakup banyak scripting.

Bash shell :

Bash shell adalah singkatan dari Bourne Again Shell. Bash shell adalah shell default di sebagian besar distribusi linux dan pengganti Sh Shell (Sh shell juga akan berjalan di Bash shell) . Bash Shell dapat melaksanakan sebagian besar Sh shell script tanpa modifikasi dan memberikan perintah line fitur editing juga.

Komentar (0)