如何将Bash变量传递给Python的getpass()?

0 投票
1 回答
565 浏览
提问于 2025-04-18 11:22

我在用一个Bash脚本调用一个Python脚本,这个Python脚本是一个软件包里提供的,Bash脚本除了调用这个Python脚本外,还做了其他一些事情。具体来说,在Bash脚本的前面,我用Zenity创建了一个密码对话框,让用户输入MySQL的根密码,并把这个密码存储在一个Bash变量里,以便进行一些数据库设置。然后在后面的部分,我调用了Python脚本,它也需要用户的MySQL根密码。

我尝试通过管道和这里字符串直接使用存储密码的变量,但都不行;脚本就卡在那里,直到我回到终端重新输入密码。我查了一下Python脚本,发现它用的是getpass来询问密码。请问有没有办法让我把之前在Bash变量里存的密码传给Python脚本,这样我就只需要通过图形界面问用户一次密码?

1 个回答

3

如果这些信息已经存在于一个bash变量中(比如这个变量叫做 pwd),我觉得最简单的办法就是把它导出到环境中。

export pwd

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

pwd = os.environ('pwd')

撰写回答