我想使用expect将密码发送到我的vpn连接但密码未正确发送。 我使用以下脚本:
#!/usr/bin/expect -d
set pass "myPassword"
spawn snx -g -s 199.203.xxx.xxx -c ~/vpn_connection/file(IL\).p12
match_max 100000
expect "Please enter the certificate's password:"
send "$pass\r"
expect eof
我收到错误: " SNX:连接中止。"这意味着密码是无限的
虽然如果我手动输入密码到cmd就可以了。 谢谢......
答案 0 :(得分:0)
~
中的Tcl
char并不特殊(因此Expect
),因此您的spawn
命令应该这样写:
# '(' and ')' are not specical in Tcl.
spawn snx -g -s 199.203.xxx.xxx -c $env(HOME)/vpn_connection/file(IL).p12
或
# But '(' and ')' need to be quoted in shell.
spawn sh -c "snx -g -s 199.203.xxx.xxx -c ~/vpn_connection/file\\(IL\\).p12"
# or
spawn sh -c {snx -g -s 199.203.xxx.xxx -c ~/vpn_connection/file\(IL\).p12}