Tercihen kullanmak için bu sitede ( Tercih edilen Bash shebang nedir? ) Öneriler de dahil olmak üzere bir dizi yerde gördüm . Hatta bir girişimci birey gördüğüm kullanılmasını öneriyorum oldu yanlış ve bash işlevselliği böyle yaparak kaybolacaktır.#!/usr/bin/env bash
#!/bin/bash
#!/bin/bash
Tüm bunlar, dolaşımdaki her sürücünün aslında tek bir ana sürücünün bir klonu olduğu sıkı kontrollü bir test ortamında bash kullanıyorum. Taşınabilirlik argümanını anlıyorum, ancak benim durumumda geçerli olmayabilir. #!/usr/bin/env bash
Alternatifleri tercih etmek için başka bir neden var mı ve taşınabilirliğin bir endişe olduğunu varsaymak, onu kullanmanın işlevselliği bozması için herhangi bir neden var mı?
env
yer olmayabilir /usr/bin
. Shebang yorum IMHO tamamen kötü bir fikirdir. Varsayılan kod yorumcunuz gizli yorumları ele almıyorsa, bu sadece bir yorumdur. Bununla birlikte, komut dosyası yorumlayıcısının shebang yorumlarını işleyebileceğini ve bash yolunu biliyorsanız, yol çok uzun (olası) olmadığı sürece mutlak yolunu kullanarak çağırmamak için bir neden yoktur veya komut dosyasını muhtemelen taşıyabilirsiniz. / bin içinde bash bulunmayan bir sisteme. Daha sonra, daha önce bahsettiğim uyarılar taşınabilirlik içerdiği için bu durumda geçerlidir.
/etc
ya da /bin/sh
. bash
Unix benzeri sistemlerin çoğu için bir eklentidir. Sadece Linux'ta olduğu bash
garanti edilen /bin
ve büyük olasılıkla olarak bağlantılı olduğu Linux'tur /bin/sh
. Linux birçok insan için modern fiili Unix haline geldiği için Linux dışındaki sistemlerin var olabileceği unutuldu. Aşağıdaki kendi cevabımda Linux dedim çünkü dedin bash
. Birlikte çalıştığım BSD kutularının birçoğu yüklü bile değildi.
/bin/bash
. Bash varsayılan olarak kurulmaz. Eğer istersen, zorundasın pkg install bash
. Kurulduktan sonra adresinde bulunur /usr/local/bin/bash
. /bin/bash
OpenBSD'de yüklü hiçbir şey yok . Bir #!/bin/bash
hata irade hatası ve #!/usr/bin/env bash
başarılı olacak.