期望在bash调试中看到响应,但我无法得到它。
我正在尝试从keepass数据库获取信息,但我无法通过最后一步期望在bash调试中看到响应,但我无法得到它。,bash,expect,Bash,Expect,我正在尝试从keepass数据库获取信息,但我无法通过最后一步 #!/usr/bin/env bash #!/usr/bin/expect firewall=$1 password="PASSWORD" echo "connecting to KeepassDB..." function get_creds { expect <<- DONE set timeout 10 spawn kpcli match_max 100000000 expect
#!/usr/bin/env bash
#!/usr/bin/expect
firewall=$1
password="PASSWORD"
echo "connecting to KeepassDB..."
function get_creds {
expect <<- DONE
set timeout 10
spawn kpcli
match_max 100000000
expect "kpcli:/>"
send "open /media/sf_VM_shared/keepass.kdb\n"
expect "password:"
send "$password\n"
expect ">"
send "cd General/Network/Firewalls/SSH\n"
expect "SSH>"
send "ls\n"
expect ">"
DONE
}
credentials=$(get_creds)
echo $credentials
#/usr/bin/env bash
#!/usr/bin/expect
防火墙=$1
password=“password”
echo“连接到KeepassDB…”
功能获得信任{
expect使用bash-x时会得到输出,因为每个命令输出在运行后都会打印出来(调试模式)
脚本不打印,因为get\u creds
的最后一行输出为空。它应该打印方法的最后一行输出
使用echo输出凭据时,应使用qoutes(“)以保留换行符
尝试用以下内容替换脚本中的最后一行:
echo "$credentials"
为什么你有两个shebang?哇!两天来我一直在挠头。现在我可以把它敲在桌子上了。:-)谢谢。