Как я должен экспортировать переменную оболочки в ударе?

Используйте Все. Вы не захотите использовать что-либо еще.

3
задан 19 January 2010 в 05:49
6 ответов

Я полагаю, что истинная Оболочка Bourne (/bin/sh на многих коммерческих вариантах Unix) не поддерживает присвоение и экспортирует в отдельном операторе. Это - то, как я помню это со своих дней на Солярисе.

Я не знаю, используют ли новые версии Соляриса удар по умолчанию теперь. Независимо, Ваш последний случай является более портативным, таким образом, я придерживался бы этого.

5
ответ дан 3 December 2019 в 04:47
  • 1
    Да that' s точно это - это - neckbeard территория. При использовании реальной оболочки Bourne затем, необходимо использовать два оператора, иначе с ударом, можно объединить два. –  Phil Hollenback 19 January 2010 в 06:27

В Солярисе/bin/sh требует этих двух операторов, в то время как/bin/bash соглашается с ним на одном операторе. На Linux/bin/sh обычно является символьной ссылкой на/bin/bash, таким образом, нет различия.

Если Вы пишете сценарий, который может быть получен другим сценарием, то всегда используют два формата оператора. Если сценарий не или не будет получен, просто проверьте строку хижины наверху сценария для наблюдения который оболочка использование. Много сценариев Соляриса используют/bin/sh, и это - значение по умолчанию для многих пакетов программного обеспечения. Как таковой большая часть администратора предпочитают более портативный способ экспортировать переменную.

3
ответ дан 3 December 2019 в 04:47
  • 1
    В наше время/bin/sh обычно является символьной ссылкой на dumbed вниз более строгая оболочка, названная тире (Это определенно имеет место во всех современных дистрибутивах Debian). Таким образом как первое сообщение указывает, что лучше пойти с более портативным решением. Однако тире, действительно кажется, поддерживает один оператор :) строки –  ScottZ 30 January 2010 в 04:48

Можно использовать первого, если Вы являетесь главным образом рабочими на ударе, так как можно использовать удар в качестве корневой оболочки без любых опасных побочных эффектов начиная с Соляриса 10. Если машина когда-нибудь должна перезагружать в Отдельного пользователя и не найдет удар существует автоматическая нейтрализация к Оболочке Bourne.

2
ответ дан 3 December 2019 в 04:47

Любой современный Bourne получил оболочку, что я знаю о поддержках единая форма. Я думаю, что более старые версии исходной Оболочки Bourne могут потребовать отдельной версии.

1
ответ дан 3 December 2019 в 04:47

В "набранной" оболочке Posix может объявить переменную, установить значение и экспортировать в "единственном" операторе.

typeset -x foo=bar

Это поведение относится к Shell Posix и Korn Shell.

0
ответ дан 3 December 2019 в 04:47

Я работаю над Солярисом 2.6, приблизительно 1998. Эта версия только шла с sh и csh первоначально. Используя sh, я вижу, что Вам нужны две версии строки, которые Вы упоминаете для наблюдения корректного результата ENV Используя удар из sunfreeware.org, и это хорошо работает с одной версией строки.

1
ответ дан 3 December 2019 в 04:47

Теги

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