期望脚本无法使用ssh从文件中获取输入

时间:2017-12-05 05:59:08

标签: linux bash shell ssh expect

我有一个类似下面的预期脚本。

/usr/bin/expect << EOD
    spawn ssh root@192.168.83.100 -o StrictHostKeyChecking=no -p 830 -s netconf < $FILE1
    expect "Password:"
    send "$PASSWD\n"
EOD

ssh命令不起作用。它没有从$FILE1获取输入。

语法是什么?

更新

我有一个类似下面的预期脚本。

#!/bin/bash

FILE=/home/eorstae/mtasCDivBlackList_temp.xml
FILE1=/home/eorstae/mtasCDivBlackList.xml
PASSWD=rootroot

COUNT=0
while [ $COUNT -lt 2048 ]  
do
  sed  -e "s/VARA/${COUNT}/g" $FILE > $FILE1
  COUNT=`expr $COUNT + 1`
  /usr/bin/expect <<EOD
    spawn bash -c "ssh root@192.168.83.100 -o StrictHostKeyChecking=no -p 830 -s netconf <  $FILE1"
    expect "Password: "
    send "$PASSWD\r"
EOD

  sleep 5
done

运行脚本时的输出:

[/home/eorstae] ->./myTest.sh

spawn bash -c ssh root@192.168.83.100 -o StrictHostKeyChecking=no -p 830 -s netconf <  /home/eorstae/mtasCDivBlackList.xml

Password: spawn bash -c ssh root@192.168.83.100 -o StrictHostKeyChecking=no -p 830 -s netconf <  /home/eorstae/mtasCDivBlackList.xml

Password: spawn bash -c ssh root@192.168.83.100 -o StrictHostKeyChecking=no -p 830 -s netconf <  /home/eorstae/mtasCDivBlackList.xml

远程节点上未执行netconf代码段。 脚本有问题。

1 个答案:

答案 0 :(得分:1)

您可以使用gradle syncRemoteRepositories

syncRemoteRepositories {
   repoRoot '/path/to/repo'
}