我有一个名为login.py的程序,运行时会提示用户输入密码(5个字符)。如果用户输入正确的密码,则输出“登录成功”,并允许用户访问其他程序内操作。我正在尝试编写一个bash脚本,看看我是否可以强制使用此密码。
我正在使用for str in $(echo {a..z}{a..z}{a..z}{a..z}{a..z}); do
生成密码。
如何将这些生成的字符串传递给login.py程序并打印出匹配的密码?
答案 0 :(得分:1)
expect
是一个可以用来与python登录进行交互的工具。它专门设计用于在拨号连接时自动恢复登录过程。它通过将动作与输入模式匹配来工作。
例如
#!/usr/bin/expect -f
spawn $your-python-program
expect "ogin:"
send_tty "$ruser\n"
expect "assword:"
send_tty "$passwd-guess\n"
答案 1 :(得分:0)
这取决于python程序如何读取密码。
如果只是使用标准输入(检查示例http://pastebin.com/raw/YHnZfyJC),请使用echo foo | python thescript.py
进行调用。
如果脚本接受密码作为命令行参数 - 只需传递它。
如果它使用类似getpass
模块的内容 - 您必须使用@ {6}建议的expect
。