Şunu kullanmanızı öneririm:
#!/bin/bash
% 100 taşınabilir değildir (bazı sistemler farklı bash
bir konuma yerleştirilir /bin
), ancak mevcut komut dosyalarının çoğunun ana konuma en az bir bağlantı #!/bin/bash
yapmak /bin/bash
için çeşitli işletim sistemlerine baskı uyguladığı gerçeği .
Alternatifi:
#!/usr/bin/env bash
önerildi - ancak env
komutun içinde olduğuna dair bir garanti yok /usr/bin
(ve olmadığı yerlerde sistemleri kullandım). Ayrıca, bu form bash
geçerli kullanıcılarda ilk örneğini kullanacaktır; bu $PATH
, bash kabuğunun uygun bir sürümü olmayabilir.
(Ancak , içinde olduğu veya sistemin çalışmasını sağlamak için bir şeyler yaptığı için /usr/bin/env
makul derecede modern bir sistem üzerinde çalışmalıdır. Yukarıda bahsettiğim sistem, muhtemelen yaklaşık 25 yıldır kullanmadığım SunOS 4 idi.)env
/usr/bin
Sahip olmayan bir sistemde çalıştırmak için bir komut dosyasına ihtiyacınız varsa /bin/bash
, komut dosyasını, doğru konumu gösterecek şekilde değiştirebilirsiniz (kuşkusuz rahatsız edici).
Ben de daha derinlemesine tradeoffs ele aldık cevabım için bu soruya .
Bir biraz karanlık güncelleme: Bir sistem I kullanımı Termux , bir masaüstü Linux benzeri Android altında çalıştığında, yok katmanın /bin/bash
( bash
olan /data/data/com.termux/files/usr/bin/bash
) - ama desteğe özel işlem vardır #!/bin/bash
.
/usr/local/bin/bash
OpenBSD'de.