簡體   English   中英

如何使用linux expect腳本輸入應答密碼提示

[英]How to use a linux expect script to enter answer a prompt for password

我在編寫腳本時遇到一些麻煩,該腳本將啟動我的forticlient vpn命令行客戶端並在提示時發送我的密碼。 這是我的代碼:

#!/usr/bin/expect -f
set loadme "./forticlientsslvpncli --server myvpnserver --vpnuser theuser
eval spawn $loadme
expect "Password for VPN: "
send "password\r"

但是,它仍然提示輸入vpn密碼。 我確信這是一個簡單的東西,我對linux腳本很新,但任何幫助將不勝感激!

謝謝!

#!/usr/bin/expect -f
set timeout -1
cd /usr/local/forticlientsslvpn
spawn ./forticlientsslvpn_cli --server myhost:10443 --vpnuser myuser
expect "Password for VPN:" {send -- "mypassword\r"}
expect "to this server? (Y/N)\r" {send -- "y\r"}

expect eof

根據我從格倫傑克曼那里得到的評論,我能夠發現密碼提示沒有匹配。 我將我的第一行更改為#!/var/bin/expect -d ,它提供了必要的調試輸出以找出問題並修復它。

謝謝格倫!

您的代碼語法可能有誤或者密碼錯誤。 所以你可以在期望的提示下嘗試它 - 逐行調試它。

您可以使用forticlientsslvpn_cliExpect來輸入密碼。

這里提供完整的解決方案:

https://gist.github.com/azizasm/e216bc47b54f5b68405f3c8f8b832e8a

注意:如果VPN斷開連接,此解決方案將自動重新連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM