#python #mysql #bash
#python #mysql #bash
Вопрос:
Я вызываю скрипт Python, поставляемый как часть пакета из написанного мной скрипта Bash, который вызывает скрипт в дополнение к выполнению различных других действий. В частности, ранее в сценарии Bash я использовал диалоговое окно пароля Zenity, чтобы получить пароль пользователя MySQL root и сохранить его в переменной Bash для выполнения некоторой настройки базы данных. Позже вызывается скрипт Python, и он тоже хочет получить пароль пользователя MySQL root.
Я попытался просто повторно использовать переменную, содержащую пароль, используя канал и строку here , но ни то, ни другое не работает; скрипт просто зависает там, пока я не вернусь к терминалу и снова не введу пароль. Я немного покопался в скрипте Python и обнаружил, что он использует getpass для запроса пароля. Есть ли какой-нибудь способ, которым я могу дать ему пароль из ранее созданной переменной Bash, чтобы мне нужно было запрашивать его у пользователя только один раз через графический интерфейс?
Комментарии:
1. Это ваш сценарий? можете ли вы изменить его, чтобы получить пароль в качестве аргумента?
2. Попробуйте поискать
expect
решения.3. @Korem Нет, это не мое. На самом деле это из более старой версии ERPNext.
Ответ №1:
Если информация уже присутствует в переменной bash (скажем, имя pwd
), ИМХО, самым простым решением является экспорт ее в среду.
export pwd
Затем вы можете получить его в скрипте Python :
pwd = os.environ('pwd')