如何向内联 bash 脚本添加条件,以便在满足该条件时使用 Expect 发送字符串?

问题描述 投票:0回答:1

我使用内联脚本连接到我的服务器,有时服务器是新的,我必须输入“是”才能添加指纹,但我的大多数服务器都很旧,我已经连接到它们很多次,这是我的内联脚本:

expect -c 'spawn ssh MYHOST@MYSERVER; expect "Password:"; send "MY PASSWORD"; interact'

如何添加条件来查找字符串“FINGER PRINT”或“主机的真实性”,如果有其中之一,则发送“YES”?

谢谢大家。

我试图找到这方面的示例,但不幸的是我找不到可以用来解决我的问题的示例。

bash if-statement ssh logic
1个回答
0
投票

试试这个:

#!/bin/bash

expect <(cat << 'EOF'
spawn ssh MYHOST@MYSERVER
expect {
    -re "(authenticity of host|fingerprint)" { send -- "yes\r" }
}
expect {
    "password:" { send -- "secret\r" }
}
interact
EOF
)
© www.soinside.com 2019 - 2024. All rights reserved.