Зачем кому-то использовать sh вместо bash?

Зачем кому-то использовать sh вместо bash?

Мне нужно изменить существующие скрипты оболочки, и они начинаются с

#!/bin/sh

По какой причине кто-то будет использовать это в системе, которая также поддерживает bash? Мне хочется это изменить, но я хочу убедиться, что нет причины, о которой я не знаю.

Моя текущая проблема связана с манипуляцией строками, и использование этого метода ${mystring:start:length}было бы очень простым в bash, но бесполезным в sh.

решение1

В наши дни, когда современные дистрибутивы Linux являются наиболее распространенными операционными системами, это может быть неочевидно, но некоторое время назад можно было найти не только различные системы, вообще не имеющие bash, но, насколько я помню, даже один дистрибутив Linux, в одной из версий которого /bin/bash был связан с какой-то не похожей на Bourne оболочкой.

В то время перемещение скриптов #!/bin/bash из одной системы в другую было утомительным, поэтому было разумнее писать скрипты в чистой оболочке Bourne без башизмов.

Так что, полагаю, главной причиной была переносимость. Я до сих пор использую #!/bin/sh, если уверен, что в скрипте не будет никаких башизмов, хотя прошло уже лет десять с тех пор, как вокруг меня не было ничего, кроме Linux.

Связанный контент