Составляют тире, пепел и sh сценарий совместимых 100%?

Попытайтесь сделать сценарий для этого.

сценарий должен сделать завершение работы для гостя y перезагрузка ОС хост-система.

Если гость, которого выполняет ОС, когда Вы завершаете работу системы, можно было потерять данные.

16
07.08.2012, 09:15
2 ответа

Короткий ответ не, они не на 100% совместимы.

Но большинство оболочек достаточно близко к основному, таким образом, Вы только редко врезались бы в несоответствия. На самом деле большинство оболочек отличается не очень добавленным синтаксисом, но некоторыми дополнительными функциями как заполнение клавишей Tab и подобный.

Кроме того, dash вид потомка ash — или порт от BSD до Linux, чтобы быть точным. И все они должны быть потомками или различными реализациями sh.Действительно, sh находится в большинстве систем просто символьная ссылка на bash, dash или что-то еще. То, что имеет значение, является соответствием POSIX — и когда Вы запишете сценарии согласно стандартам, Вы не столкнетесь с проблемами.

Различие между теми оболочками находится в оптимизации и производительности. Они менее многофункциональны затем bash, но они - полностью законные оболочки. Bash многофункционален для интерактивной работы, но использует больше памяти, например.

18
27.01.2020, 19:48
  • 1
    , Но для использования сценария, они совместимы? –  user1115057 07.08.2012, 09:36
  • 2
    И о соответствии POSIX, даже если я следую тому стандарту, если сценарий записан для Bash, я не думаю, что это будет работать на любом sh или его потомке –  user1115057 07.08.2012, 09:37
  • 3
    Они должны быть совместимы друг с другом, если Вы не используете некоторые неясные функции. Но если Вы используете сценарий удара, Вы могли бы столкнуться с большим количеством проблем. –  Zlatko 07.08.2012, 09:41
  • 4
    никогда не намеревался использовать удар с sh или пеплом или тире. Что, они затеняют функцию? –  user1115057 07.08.2012, 09:42
  • 5
    многими более новыми функциями удара являются дополнения по POSIX, таким образом, все больше вероятно, что Вы напишете непортативный код при использовании их. IIRC даже [[]] конструкция не находится в sh. Также остерегайтесь, что, если Вы не пишете чистый сценарий оболочки, различие в инструментах играет роль также (различные версии sed, grep, awk...). –  lynxlynxlynx 07.08.2012, 14:44

Следует отметить, что в некоторых системах, особенно в Debian, / bin / ash недоступен :

$ type ash dash
bash: type: ash: not found
dash is /bin/dash
1
27.01.2020, 19:48

Теги

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