我正在尝试让bash脚本工作,将变量传递到sshpass、telnet和ssh中。这是一个可怕的组合,但似乎是我切换网络交换机POE状态的唯一方法。
这是我的脚本:
UNIFIUSER=xxx
UNIFIPASS=yyy
sshpass -p $UNIFIPASS ssh -o StrictHostKeyChecking=no $UNIFIUSER@10.10.10.53 '(echo "enable" ; echo "configure" ; echo "interface 0/8" ; echo "poe opmode shutdown" ; echo "exit" ; echo "exit"; echo "exit" ) | telnet localhost 23 ; exit;'
我想要实现的是这样的目标:
UNIFIUSER=xxx
UNIFIPASS=yyy
sshpass -p $UNIFIPASS ssh -o StrictHostKeyChecking=no $UNIFIUSER@10.10.10.53 '(echo "enable" ; echo "configure" ; echo "interface 0/8" ; echo "**poe opmode $MODE**" ; echo "exit" ; echo "exit"; echo "exit" ) | telnet localhost 23 ; exit;'
但我似乎无法让$MODE参数工作,它似乎无法进入远程系统。我也尝试过传递env,但也无法实现。
非常感谢任何指导。
感谢
Jim
我太笨了,就是看不到明显的东西!
sshpass -p $UNIFIPASS ssh -o StrictHostKeyChecking=no $UNIFIUSER@10.10.10.53 '(echo "enable" ; echo "configure" ; echo "interface 0/8" ; echo "poe opmode ' "$MODE" '" ; echo "exit" ; echo "exit"; echo "exit" ) | telnet localhost 23 ; exit;'