Yeni başlayanlar için, Bash'in önceden kurulu olduğu varsayımını yapabiliyorsanız (ki bence listelediğiniz tüm sistemlerde böyledir), uyumlu olmak için aşağıdaki hashbang'ı kullanın:
#!/usr/bin/env bash
bu bash, içinde /binveya dışında olsun, yapılandırılacak her şeyi başlatır /usr/local/bin.
Geniş bir aralıktaki çoğu sistemde (AIX, Solaris, çeşitli BSD lezzetleri dahil), bashfarklı yerlerde envsona erdi , her zaman sonuçlandı /usr/bin/env. Ancak hile benim değil Bash Yemek Kitabı'nın yazarı.
Her neyse, evet Bash hayatınızı kolaylaştıran bazı "modern" özellikleri kullanmanızı sağlar.
Örneğin çift parantez:
[[ -f "/etc/debian_version" ]] && echo "This is a Debian flavor"
oysa geleneksel kabuk ağızlarında:
test -f "/etc/debian_version" && echo "This is a Debian flavor"
ancak çift parantez ile ilgili en iyi şey, eşleşme için düzenli ifadelere izin vermesidir. Bash Hackerlar Wiki o yönde size birçok hileler verecektir.
Ayrıca $((2**10)), $((expression))sözdizimi ile aynı olan oldukça uygun ifadeleri veya diğer aritmetik ifadeleri kullanabilirsiniz .
Subshells için backticks kullanmak biraz modası geçmiş olsa da iyidir. Ancak, $(command ...)farklı alt kabuk seviyelerinde birçok şeyden kaçmak zorunda kalmayacağınız için , invokasyonların yuvalama özellikleri çok daha uygundur.
Bunlar, Bash'in geleneksel ortak POSIX shsözdizimi üzerinde verdiği birkaç şeydir .
Ancak kabukta daha fazla güç istiyorsanız (sadece komut dosyalarında değil), ayrıca bir göz atın zsh.
/binve/usr/bin. Sonuç olarak,#!/usr/bin/env <shname>bu günlerde taşınabilirlik için kullanmak muhtemelen daha iyidir .