Я хочу выполнить команду ниже в сценарии ожидания.Невозможно назначить вывод команды в сценарии ожидания
`netstat -nr | while read line;do flag=$(echo $line | cut -d' ' -f4); if [[ $flag == "UG" ]];then gateway=$(echo $line | cut -d' ' -f2);echo $gateway;fi;done`
Цель сценария для входа на хост и получить межсетевые горячие товары, чтобы создать другую ф (eth0) с ifcong eth0: 0 <ip>
и добавить IP-маршрут после with-- ip route add <ip> via <gateway ip>
.
я попробовал следующие возможности: 1)
`expect -c '
spawn bash -c "ssh [email protected]"
expect {
// password provided
}
expect "*?$*"
send "\$cmd"
expect EOF
'`
Для этого я получаю ошибку: отсутствует) при выполнении "установить CMD" NETSTAT -NR | while read line; do flag = $ (echo $ line | cut -d " не удалось прочитать файл" -f4); если [[$ флаг == "UG"]], а затем шлюз = $ (эхо $ линия | вырезать -d ": нет такого файла или каталога
2)
`expect -c
spawn bash -c "ssh [email protected]"
expect {
// password provided
}
expect "*?$*"
send "netstat -nr | while read line;do flag=\$(echo \$line | cut -d' ' -f4); if [[ \$flag == "UG" ]];then gateway=\$(echo \$line | cut -d' ' -f2);echo \$gateway;fi;done\r"
expect EOF
'`
Для этого я получаю ошибку как:. couldn't read file " -f4); if [[ $flag == "UG" ]];then gateway=$(echo $line | cut -d": no such file or directory
нет ли способ выполнить команды Баша внутри ожидать сценарий и зарегистрировать свою команду на переменный, так что он может быть использован в дальнейшем в ожидать сценарий
я опробовал способ set output $expect_out(buffer)
но он вообще не регистрирует выход.
Добавление этого фрагмента кода делает сценарий запуска, но нет выхода. см ниже сценарий: 'ожидать -c ' Spawn Bash -c "пользователь SSH @ $ ENV (имя хоста)" сон 15 ожидать {// пароль, предоставленный} ожидать "? *] $ *" отправить" су \ г» ожидать "* ssword:? *" отправить "путь \ г" ожидать "*] # *" посыла "кд/Opt/\ г" ожидать "*] # *" отправить "pwd \ r" ожидать "*?] # *" foreach {whole gw f} [regexp -all -inline {\ S + \ s + (\ S +) \ s + \ S + \ s + (\ S +)} exec netstat -nr]] { if {$ f == "UG"} { ставит «шлюз: $ gw» } } ожидать "*?] # *" отправить "эхо \ $ дш \ г" ожидать EOF «' Это даст надлежащего O/P для 'pwd', а затем показывает' Эхо $ gw'. пустой вывод для 'gw' –