Bash или сценарии границы?

Это - лучшая практика для записи сценариев Bash или сценариев Bourne? Моя команда пишет сценарии Bourne, но я не совсем уверен почему.

Если это - вопрос о священной войне (т.е.: энергия по сравнению с emacs), просто ответьте: священная война.

9
задан Jonathan Leffler 16 September 2011 в 05:57
поделиться

7 ответов

Это зависит от вашей целевой платформы.

Если вы ориентируетесь, скажем, только на основные дистрибутивы Linux и Mac OS X, то можете быть уверены, что в этих системах будет доступен bash. В других UNIX (например, AIX, Solaris, HP-UX) bash может не обязательно присутствовать, поэтому Bourne - более безопасный выбор. Если доступен bash, я не могу придумать причины, по которым вы могли бы предпочесть Bourne.

11
ответ дан 4 December 2019 в 06:19
поделиться

Ну, это дело вкуса, но для начала , сценарии оболочки bourne можно запускать с помощью bash, и я думаю, что в bash есть функции, которые не могут выполняться с помощью Bourne.

4
ответ дан 4 December 2019 в 06:19
поделиться

Переносимость. Я пишу #! / Bin / sh , если что-то не становится слишком болезненным, а затем пишу #! / Bin / bash . Мир меняется очень быстро, и я уверен, что в будущем будет легко убедить системных администраторов установить bash. Но я хеджирую свои ставки, используя Борна для большинства вещей, что очень просто.

1
ответ дан 4 December 2019 в 06:19
поделиться

Самое важное - помнить, что не каждая ОС связывает / bin / sh с / bin / bash, как некоторые Linux дистрибутивы делают. Для bash написано много скриптов, но они начинаются с:

#!/bin/sh

, поэтому они ломаются, например. в Ubuntu. Итак, когда вы пишете сценарий bash, всегда пишите:

#!/bin/bash
10
ответ дан 4 December 2019 в 06:19
поделиться

Вы можете быть более уверены в том, что оболочка Bourne будет установлена ​​на любом компьютере Unix. Да, Bash повсеместно присутствует в Linux, но Linux - это не весь мир.

12
ответ дан 4 December 2019 в 06:19
поделиться

Я бы снова выбрал оболочку bourne, поскольку оболочка bourne может немного отличаться в разных реализациях Unix. С помощью bash вы можете быть уверены, что bash всегда будет bash .

0
ответ дан 4 December 2019 в 06:19
поделиться

В Mac OS X / bin / sh НЕ является оболочкой Борна. (Но вы можете получить настоящую бурнешу из свежего мяса).

Чтобы идентифицировать традиционную оболочку Борна, вы можете попробовать использовать циркумфлекс ^ (каретка) вместо | (трубка).

См .:

Традиционное семейство раковин Борна,

http://www.in-ulm.de/~mascheck/bourne/

1
ответ дан 4 December 2019 в 06:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: