下面的腳本將文件傳輸到另一臺沒有密碼的服務器,但在sftp進程下面的語句沒有執行之後。如果我運行相同的腳本(保存在主shell腳本下的ftpAutomatic())函數並在case語句內調用它,我得到錯誤爲「行441:語法錯誤:文件的意外結束 」sftp shell腳本自動文件傳輸
腳本:
#!/bin/sh
ftp_site="10.***.***.**"
username="dwadmin"
#source path
spath="/home/abc/data"
#Remote Path
rpath="/home/def/bas"
cd $spath
sftp [email protected]$ftp_site <<EOL
cd $rpath
mput bcs_extract_*.txt.pgp
bye
EOL
echo "Success : $?"
mv $spath/bcs_extract* $spath/queue/
回聲 「腳本做......」
在這裏,我沒有得到迴音 「成功狀態?」 ,「腳本完成」和「mv」命令不工作...但文件傳輸已成功完成。但是,如果我在主腳本中將此腳本作爲函數並從「case」語句中調用,則此文件傳輸也不起作用。
請告訴我的錯誤在我的腳本如上 – user3321778
爲什麼不直接使用'scp'? – Biffen
你的'EOL'是縮進的。它不應該。我可以推薦使用http://www.shellcheck.net嗎? – Biffen