我遇到了與期望相關的問題。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