我遇到了与期望相关的问题。expect命令在bash脚本中不起作用
当我运行abc.sh,其中包括以下行
#!/usr/bin/expect
spawn scp /etc/httpd/conf/httpd.conf 192.168.0.12:/tmp
######################
expect {
-re "password:" {
exp_send "PASSWORD\r"
}
}
interact
其工作正常
,但是当我在运行脚本中使用类似的代码,它不工作
#!/bin/bash
clear
while read -u3 LINE
do
code .........
code .......
code ........
REMOTE_COMMANDS1="scp -r -v $BASE_DIRECTORY/$USERNAME $D_IPADDRESS:/home/"
spawn $REMOTE_COMMANDS1
######################
expect {
-re "password:" {
exp_send "redhat\r"
}
}
interact
done 3< /opt/sitelist.txt
它给出错误
./script.sh:第62行:附近意外的标记}' ./script.sh: line 62:
语法错误}”
我认为这是由于这样的事实,我不包括#在/ usr/bin中/期望在脚本的顶部但如果我使用这个并执行我的脚本,它不会做任何事情,并在执行完后显示终端中的所有代码。所以我们可以同时包含#!/ usr/bin/expect和#!/ bin/bash吗?
问候, 阿迪亚
@ Thanku Dmitri – aditya