Запуск части сценария оболочки как другого пользователя

Этот вопрос задавали раньше, но я не могу заставить его работать.

Одно из решений, которые я пробовал, использует здесь-документ . Я использовал следующий код:

#!/bin/bash su - mv2 <<EOSU DELIVER_BRANCH="development" echo ${DELIVER_BRANCH} exit; EOSU 

Я попробовал вышеуказанный код, бит echo ${DELIVER_BRANCH} ничего не печатает.

One Solution collect form web for “Запуск части сценария оболочки как другого пользователя”

Вы хотите:

 #!/bin/bash su - mv2 <<'EOSU' DELIVER_BRANCH="development" echo "$DELIVER_BRANCH" exit; EOSU 

Обратите внимание на одинарные кавычки вокруг первого EOSU . Если вы их опустите, heredoc претерпевает $ -интерполяцию перед передачей, что означает, что "$DELIVER_BRANCH" заменяется на текущее (на оболочку, вызывающее su ) содержимое $DELIVERY_BRANCH , которое пусто:

 DELIVERY_BRANCH=production cat <<'EOSU' DELIVER_BRANCH="development" echo "$DELIVER_BRANCH" exit; EOSU 

печать

 DELIVER_BRANCH="development" echo "$DELIVER_BRANCH" exit; 

в то время как

 DELIVERY_BRANCH=production cat <<EOSU DELIVER_BRANCH="development" echo "$DELIVER_BRANCH" exit; EOSU 

печать

 DELIVER_BRANCH="development" echo production exit; 
  • Unix-скрипты - для команды do с &
  • разделение файлов на основе их имени
  • отсутствует ошибка `] 'в скрипте unix shell
  • файл сценария оболочки сценария
  • Почему этот скрипт не принимает два аргумента?
  • C Shell отменил файл
  • Проверка всех файлов в цикле `ls` for и отображение сообщения на основе условия
  • создать цикл из файла
  • Тихая установка сценария оболочки с использованием файла bash
  • Преобразование подчеркивания в PascalCase, т.е. UpperCamelCase
  • Как переформатировать имена каталогов?
  • Interesting Posts

    Какой клиент GUI svn позволяет выполнять поиск по истории?

    i3 запустить dmenu в разных режимах для каждой рабочей области

    Как остановить `apt-get` жалобы на неудовлетворенные зависимости, когда я вручную устанавливаю программное обеспечение из источника?

    Разрешить su без пароля для пользователей в определенной группе Active Directory при использовании pam_winbind

    Получение «Невозможно устранить проблемы, у вас были сломанные пакеты». После попытки установки python -setuptools и python-pip

    Почему Linux может показать имя файла, содержащее символ '/'?

    альтернатива для команды digest -a sha256 от solaris в linux

    Что произойдет, если я экспортирую переменную $ HOME при входе в систему?

    Как chsh запрещает пользователям изменять оболочку другого пользователя?

    Есть ли практические причины для установки лимита maxlogins для пользователей в limit.conf? Каковы преимущества?

    Что означает этот операнд mkfs.ext4?

    Как распечатать следующие задачи crontab для выполнения?

    Отключить изменение разрешений для каталога

    Python 3.4.3 не удалось создать модули _ssl и _hashlib в Debian Strech

    Разрешение группы ACL по-прежнему не позволяет разрешениям на запись

    Linux и Unix - лучшая ОС в мире.