Dilini uygulayan birden fazla program var /bin/sh. Ubuntu'da, /bin/shhızlı olması, az miktarda bellek kullanması için tasarlanan ve beklenenden en azını desteklemeyen çizgi /bin/sh. RHEL'de, /bin/shdaha 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/shsimgesel bir bağlantıdır dash. Bunun bashyerine 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/shveya 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/shiç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 shbundan 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/sholmasıdır ln -sfbilgisayarı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 mvatomiktir.)
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/bashDağı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/bashve ile başlayan komut dosyalarında #!/bin/shbash'a özgü özellikler kullanılmamalı, ancak bash ile birlikte gelen dağıtımlarda, o dağıtıma özgü komut dosyalarında /bin/shbash'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/shve 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.