Я следующий сценарий:если заявление, не работает
#!/bin/bash
pw=$1
pw2=$2
file=$3
user="admin"
if [ $# -eq 0 ]
then
echo "bitte PW und IP-file als Parameter angeben"
fi
for ip in `cat $file`;
do
ping -c1 $ip >/dev/null 2>&1
if [ $? -eq 0 ];
then
echo $ip
/usr/bin/expect <<EOD
spawn /usr/bin/telnet $ip
if { expect "Please Enter Password:" } {
send $pw\r }
} elseif{ expect "Please Enter Login Name:" } {
send $user\r
send $pw\r }
expect [email protected]*
send ena\r
expect "Password:"
send $pw2\r
expect "[email protected]*"
send skip-page-display\r
expect [email protected]*
send "show running-config\r"
log_file "$ip.conf"
expect "[email protected]*"
send "exit\r"
expect "[email protected]*"
send "exit\rn"
EOD
else
echo "$i nicht erreicht"
fi
done
, но это не сработало, я получил следующее сообщение об ошибке:
spawn /usr/bin/telnet IP
invalid bareword "expect"
in expression " expect "Please Enter Passwor...";
should be "$expect" or "{expect}" or "expect(...)" or ...
(parsing expression " expect "Please Enter ...")
invoked from within
"if { expect "Please Enter Password:" } {
send top_SECRET\r }"
любые идеи, как я получаю это работать? Некоторым коммутаторам требуется имя пользователя, а некоторые другие нет, поэтому мне нужен If-Statement, чтобы проверить, что ожидается. Заранее благодарим за помощь!
спасибо за эту информацию, но как я могу решить это? – colttt