寻求将环境变量传递到sshpass的帮助

  • 本文关键字:sshpass 帮助 环境变量 bash
  • 更新时间 :
  • 英文 :


我正在尝试让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;'

最新更新