Почему эта переменная не имеет никакого значения даже при том, что она установлена в .bashrc?

Позвольте мне добавить еще некоторые аргументы, почему переход является довольно медленным (но существует определенно один):

В первую очередь, для Клиентов иногда очень трудно переключиться от одного поставщика UNIX на другого. Даже если Вы спрыгиваете, скажем, с SuSE к Redhat, существует много вещей, которые отличаются с точки зрения администратора. При движении от AIX (или HP/UX или Солярис...) к любому Linux, вещи отличаются еще больше. Как клиент необходимо проверить, окупается ли это для миграции среды.

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

  • Если саморазработанное программное обеспечение включено, SW должен быть портирован. Часто это сразу перестало работать на шаге № 1: целевая ОС не имеет всех необходимых библиотек или используемой платформы разработки.

  • Также не очень дешево обучить команды SysOp и SysEng на новую платформу. Годы опыта могут быть представлены бесполезные (в зависимости от глубины опыта), новые лучшие практики должны быть (пере-) оценены, и некоторый SysEngs может даже покинуть компанию, потому что они хотят продолжать их *, ОТКЛОНЯЮТ производную вместо переключения.

  • Общая стоимость миграции огромная в крупных средах. Можно легко вычислить 1-2 года планирования, выполнения, теста UAT, испытаний на устойчивость, тестов аварии - все вовлекающие много людей (все из кого хотят быть заплаченными), которые отвлечены далеко от их ежедневных задач.

Рассматривая все это, можно понять, почему компании остаются со своим текущим поставщиком и предпочитают только обновлять существующие среды. Из того, что я испытал, новые системы получают свой шанс когда дело доходит до создания новых сред.

Но в конце концов: нет многих ClosedSource-нельдов, оставленных там. AIX, HP/UX и Солярис являются крупными оставленными поставщиками (OS/X, если Вы включаете Настольные системы). Поскольку я думаю о нем, я даже не знаю, жив ли IRIS все еще...

Я уже удалил записанные предложения о том пользовательском интерфейсе, говоря прежде, чем поразить посткнопку, поскольку это закончилось бы в войне пламени :-)

3
17.11.2011, 04:01
1 ответ

su -c "echo $hi" bela расширяется до слов su, -c, echo ​ и bela. Начиная с переменной hi не определяется в Вашей текущей оболочке, ее расширение пусто. Команда, которая выполняется как пользователь bela echo ​.

Зафиксируйте: su -c 'echo $hi' bela, с одинарными кавычками, защищающими $ от расширения … Нет. .bashrc файл только читается интерактивными оболочками. Когда Вы работаете su -c 'echo $hi' bela, это выполняется echo $hi как пользователь bela. Но так как ничто не определяет переменную hi, команда echo $hi расширяется до echo который все еще ничего не печатает.

9
27.01.2020, 21:10
  • 1
    да, интересный. я ожидал бы оболочку невхода в систему, открытую su для чтения .bashrc но это не делает. перемещение определения $hi к работам .bash_profile при использовании с su -c 'echo $hi' -l bela, Тем не менее, когда оболочка входа в систему читает .bash_profile. –  Tim Kennedy 17.11.2011, 05:21
  • 2
    это работает с '' :D –  LanceBaynes 18.11.2011, 08:22

Теги

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