我有這個腳本爲了使rsync與另一臺服務器,這個propossal是爲了獲得1600個文件,這個腳本作爲兩個變量,日期和小時,所以,我發送這兩個值與shell腳本然後我傳遞值。從期望輸出不完整
Expect腳本:
#!/usr/bin/expect
set DIR_DATE [lrange $argv 0 0]
# Define date variable.
set DT_HOUR [lrange $argv 1 1]
# Define hour variable.
spawn rsync -avzb -e ssh [email protected]:/SOURCE_DIR/$DIR_DATE/A$DIR_DATE.$DT_HOUR*.txt /TARGET_DIR/$DIR_DATE/
expect "password:"
send "PASSWORD\r"
#interact
expect eof
,而shell腳本是:
#!/bin/bash
***HERE is the code to get date and hour variable: DT_DATE,DT_HOUR; then, next step is run the expect script***
${DIR_BIN}/rsync_expect.sh ${DT_DATE} ${DT_HOUR}
你可以注意到,在expect腳本,我的評論 「互動」 二字,是因爲:
- 如果不是評論並手動運行腳本,它運行得非常好,它會得到1600個文件。
- 如果它是註釋,並通過shell腳本運行,它只能得到50個文件,並且關閉。
那麼,爲了獲得使用shell腳本的所有文件的任何sugestion?
問題是爲什麼在沒有交互的情況下腳本早退了?這可能是期待超時。嘗試設置無限(或至少更長)的超時時間。 –