使用 cygwin 中的 bash / expect 自动 psftp 。
我有一个非常小的脚本文件 yftp.exp ,代码为:
#!/usr/bin/expect -f
spawn psftp unixftpsrvr
expect "login as: "
send "myID\r"
expect "Password:"
send "Passw0rd\r"
expect "psftp>"
输出:
$ ./yftp.exp
spawn psftp unixftpsrvr
登录为:myID
使用键盘交互式身份验证。
输入你的UDS
密码: Passw0rd远程工作目录是/ home / myID
PSFTP>
密码打印为明文!!!
如果我直接用psftp运行命令。这是输出:
$ psftp unixftpsrvr
登录为:myID
输入您的UDS密码:
远程工作目录是/ home / myID
PSFTP>
根本不显示密码。
这似乎是期待方面的问题。
我不关心我的期望脚本文件中的明文密码,我担心输出中的明文密码!
如何以明文形式显示密码?
答案 0 :(得分:0)
在关闭ECHO之前,密码可能会过早发送。因此,请尝试在sleep 1
之后添加expect "Password:"
。
如果这不起作用,请尝试这样:
expect "Password:"
log_user 0; # disable logging to stdout
send "password\r"
log_user 1