In den meisten Shell-Skripten, die ich gesehen habe (außer denen, die ich selbst nicht geschrieben habe), ist mir aufgefallen, dass der Shebang auf eingestellt ist #!/bin/sh
. Das überrascht mich nicht wirklich bei älteren Skripten, aber es gibt es auch bei relativ neuen Skripten.
Gibt es einen Grund für die Bevorzugung /bin/sh
über /bin/bash
, da so bash
ziemlich allgegenwärtig ist, und oft standardmäßig auf vielen Linux und BSD Maschinen gehen zurück mehr als ein Jahrzehnt?
...the answers so far are fairly subjective...
Eine "subjektive" Aussage ist per Definition im Wesentlichen meinungsbasiert. /bin/bash
sollte nur verwendet werden, wenn bash ausdrücklich benötigt wird. In über 40 Jahren als Entwickler habe bash
ich es lange zuvor fast nie ausdrücklich gebraucht, außer beim Testen. (Ich bemühe mich auch, Shell-Erweiterungen zu vermeiden, aber die meisten meiner Skripte sind für die Verteilung bestimmt.) Viele Skripte im Netz sollten auch für eine breite Verwendung gedacht sein.
/bin/sh
wenn Sie keine bestimmtenbash
Funktionen verwenden. Eines Tages könnte es sein, dass Sie eines Ihrer Skripte auf einem System verwenden müssen, auf dem es nicht installiert ist (Remote-Server, eingebetteter Computer ...)