我試圖使用bash
腳本將密碼發送到遠程服務器。這工作得很好,直到我們被要求將密碼更改爲更復雜的密碼,並且其中一個新密碼包括$
字符(即[email protected]$sw0rd
)。
我已經包含了片段,不再工作:
password="'[email protected]$sw0rd'"
spawn ssh "[email protected]$device"
expect {
"*no)?" {send "yes\r"}
"*assword:" {send "$password\r"}
"*assword:" {send "$password\r"}
}
發送密碼時,都會在遠程系統試圖找到變量$sw0rd
。
我知道這個問題是可以在密碼中的字符$
,但有沒有辦法做到這一點不改變我們所有的遠程服務器上的這一個密碼,一個不包括$
人物?
我已經嘗試了不同的方式來存儲$
字符:
password='[email protected]$sw0rd'
[email protected]$sw0rd
password="'[email protected]\$sw0rd'"
password="[email protected]\$sw0rd"
password='[email protected]\$sw0rd'
[email protected]\$sw0rd
這些都沒有工作。
請幫忙。
聽起來像它可能是一個**遠程系統的問題** –
你可以包含更多的代碼?如果你的代碼實際上是'password =「無論如何」;期待<< eof; spawn ssh「$ deviceType @ $ device」; ...;那麼這會產生巨大的差異。目前代碼似乎部分是Bash和部分TCL,因此不能運行或代表問題。 –