如何向Python getpass()提供Bash变量?

时间:2014-06-27 18:59:15

标签: python mysql bash

我正在调用一个Python脚本作为包的一部分从我编写的Bash脚本中提供,该脚本除了执行各种其他操作外还调用脚本。具体来说,在Bash脚本的早期,我使用Zenity密码对话框来获取用户的MySQL root密码并将其存储在Bash变量中以进行一些数据库设置。稍后,调用Python脚本,它也需要用户的MySQL root密码。

我尝试使用管道和here字符串重复使用包含密码的变量,但两者都不起作用;脚本只是挂在那里,直到我返回终端并再次输入密码。我挖了一下Python脚本,发现它使用getpass来询问密码。有什么方法可以从之前创建的Bash变量中输入密码,这样我只需要通过GUI向用户询问一次吗?

1 个答案:

答案 0 :(得分:3)

如果信息已经存在于bash变量中(比如名称为pwd),恕我直言最简单的解决方案是将其导出到环境中。

export pwd

然后你可以在Python脚本中获取它:

pwd = os.environ('pwd')