我试图使用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,因此不能运行或代表问题。 –