W większości skryptów powłoki, które widziałem (oprócz tych, których sam nie napisałem), zauważyłem, że shebang jest ustawiony na #!/bin/sh
. Tak naprawdę nie zaskakuje mnie to w przypadku starszych skryptów, ale dotyczy to również całkiem nowych skryptów.
Czy jest jakiś powód, by preferować coś /bin/sh
więcej /bin/bash
, skoro bash
na wielu maszynach z Linuksem i BSD jest to dość wszechobecny i często domyślny program sprzed dekady?
...the answers so far are fairly subjective...
„Subiektywne” stwierdzenie jest z definicji oparte na opiniach. /bin/bash
powinien być używany tylko wtedy, gdy bash jest wyraźnie potrzebny. Przez ponad 40 lat jako programista, na długo przedtem bash
, prawie nigdy nie potrzebowałem tego wyraźnie , z wyjątkiem testów. (Staram się również unikać rozszerzeń powłoki, ale większość moich skryptów jest przeznaczona do dystrybucji.) Wiele skryptów w sieci powinno być również przeznaczonych do szerokiego użytku.
/bin/sh
jeśli nie korzystasz z określonychbash
funkcji. Pewnego dnia możesz użyć jednego ze skryptów w systemie, w którym nie jest on zainstalowany (serwer zdalny, komputer wbudowany ...)