2012-01-19 4 views
1

Im пытается написать сценарий bash, который выполняет несколько команд в качестве разных пользователей для автоматизации процесса установки.Bash Script su exiting shell

В какой-то момент у меня есть

su gpadmin 
gpperfmon_install --enable --password password --port 5432 
y 
gpstar 
y 

gpadmin су запускается как корень, и как только он запускается скрипт останавливается, пока я не выйти gpadmin и вернуться в корень.

Как можно переключиться на нового пользователя без остановки сценария?

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

ответ

3

Вам необходимо использовать параметр -c для su, чтобы он мог запустить команду, а затем выйти. С параметрами, которые вы предоставили su, он будет запускать оболочку gpadmin по умолчанию, которая будет блокироваться до выхода оболочки. Судя по коду, который у вас уже есть, похоже, что gpperfmon_install является интерактивным приложением, что является еще одной проблемой. Иногда вы можете использовать документ здесь, но в других случаях вам нужно будет использовать expect.