我有一个与期望相关的问题。
当我运行 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/expect 但如果我使用它并执行我的脚本,它不会做任何事情并在执行后在终端中显示所有代码。那么我们可以同时包含 #!/usr/bin/expect 和 #!/bin/bash 吗?
问候,阿迪亚