[問題] 用expecet腳本傳入含有"$"的密碼

作者: jacobcan118 (jacobcan118)   2016-07-28 11:29:23
請問各位我要如何藉由expect自動登入從參數送登入密碼含有"$" 錢符號的密碼
我用同一個腳本自動登入沒有問題可是當機器密碼含有"$"時他會試著登入三次之後送出登入錯誤的訊息
我用debug去看發現如密碼含有"$" expect自動加了"{", "}", 有試著在密碼前後加上單引號或雙引號 不過結果都一樣
謝謝
$/usr/bin/expect -d expect.sh 10.1.1.10 1234\$123
$/usr/bin/expect -d expect.sh 10.1.1.10 "1234\$123"
$/usr/bin/expect -d expect.sh 10.1.1.10 '1234\$123'
執行結果
expect: does "\r\n" (spawn_id exp6) match glob pattern "*?assword:*"? no
"*yes/no*"? no
Permission denied, please try again.
root@10.1.1.10's password:
expect: does "\r\nPermission denied, please try again.\r\r\nroot@10.1.1.10's password: " (spawn_id exp6) match glob pattern "*?assword:*"? yes
expect: set expect_out(0,string) "\r\nPermission denied, please try again.\r\r\nroot@10.1.1.10's password: "
expect: set expect_out(spawn_id) "exp6"
expect: set expect_out(buffer) "\r\nPermission denied, please try again.\r\r\nroot@10.1.1.10's password: "
send: sending "{1234$123}\r" to { exp6 }
expect: continuing expect
作者: yvb   2016-07-28 23:30:00
問題在於你 expect.sh 中, 怎麼讀參數的. 可能用錯方法了.
作者: jacobcan118 (jacobcan118)   2016-07-29 01:28:00
我是用 set password [ lrange $argv 1 1 ] 取的參數密碼
作者: yvb   2016-07-29 19:04:00
(1) set password [lindex $argv 1](2) lassign $argv arg0 password arg2 ...

Links booklink

Contact Us: admin [ a t ] ucptt.com