Dilini uygulayan birden fazla program var /bin/sh
. Ubuntu'da, /bin/sh
hızlı olması, az miktarda bellek kullanması için tasarlanan ve beklenenden en azını desteklemeyen çizgi /bin/sh
. RHEL'de, /bin/sh
daha yavaş olan ve daha fazla bellek kullanan ancak daha fazla özelliğe sahip olan bash'dir. Bu özelliklerden biri koşullu sözdizimi ==
operatörüdür [
. Dash [
, temel bir sh özelliği olan destekler , ancak ==
bash (ve ksh ve zsh) uzantısı olan operatöre sahip değil .
Sisteminizi bash kullanarak değiştirebilirsiniz. Ubuntu'da, /bin/sh
simgesel bir bağlantıdır dash
. Bunun bash
yerine sembolik bir bağlantı yapabilirsiniz . Debian ve Ubuntu'nun (ve türevlerinin) mevcut sürümleri bunu bir tire yükleme seçeneği haline getiriyor. Değiştirmek için çalıştırın
sudo dpkg-reconfigure dash
ve kısa çizgi olarak tutmak için "evet" /bin/sh
veya bash'a geçmek için "hayır" yanıtını verin .
Bash'i olduğu gibi tutabilirsiniz /bin/sh
, ancak sisteminizi biraz daha yavaş hale getirir. Bazı sistem komut dosyalarının bash ile uyumsuz olduğu bile düşünülebilir, ancak bash çoğunlukla tire süper bir set olduğundan, bu olası değildir.
Uygulamaları arasında seçim yapmak için bir arayüzü olmayan dağıtımlar /bin/sh
için bash'a nasıl geçileceği aşağıda açıklanmıştır.
sudo ln -s bash /bin/sh.bash
sudo mv /bin/sh.bash /bin/sh
Terminali açık tutun ve sh
bundan sonra bazı komut dosyaları çalıştırabildiğinizi kontrol edin . Bu komutu karıştırırsanız, sisteminizi kullanılamaz hale getirir. (Bu arada, neden birden çok komut yukarıdaki ziyade basit görünümlü kullanılan sudo ln -sf bash /bin/sh
olmasıdır ln -sf
bilgisayarınız bu işlem sırasında çöktü kuşkusuz olası durumda, kurtarma ortamından boot gerekiyordu atom değildir. Yeniden açar. Aksine mv
atomiktir.)
Kısa çizgiyi şu şekilde geri yüklemek için /bin/sh
:
sudo ln -s dash /bin/sh.dash
sudo mv /bin/sh.dash /bin/sh
/bin/bash
Dağıtımınızda sh varsayılan olarak varsa , kısa çizgiye geçmenin komut dosyalarının başarısız olmasına neden olabileceğini unutmayın, çünkü bash kısa çizgiden çok daha fazla özelliğe sahiptir. Bash komut dosyaları ile başlamalı #!/bin/bash
ve ile başlayan komut dosyalarında #!/bin/sh
bash'a özgü özellikler kullanılmamalı, ancak bash ile birlikte gelen dağıtımlarda, o dağıtıma özgü komut dosyalarında /bin/sh
bash'a özgü özellikler kullanılabiliyor #!/bin/sh
(kullanıcıların herhangi bir beklenti olmadığı sürece sorun değil) olarak kısa çizgiye geçebilir /bin/sh
ve bu komut dosyalarının başka bir dağıtımda çalışacağı beklentisi yoktur).
==
olması gereken şey=
. Bu ve değişken açılımların çift tırnak içinde olması gerekir.