我試圖執行一個在Oracle產品中調用作業的ksh腳本。當我運行/執行我的劇本,我得到以下錯誤:文件意外結束 - ksh
$ sh test.sh
: command not found
: command not found
: command not found
: command not found
test.sh: line 31: syntax error: unexpected end of file
$
這裏是我的代碼 - 請告訴我什麼,我做錯了:
#!/usr/bin/ksh
#
# OEDQJobSubmit.sh
export BatchKey="AVG"
# Environment details: CURRENT
export OEDQUser=user1
export OEDQPass=password
export OEDQPORT=8090
export OEDQHOST=`hostname`
if [ ${BatchKey} = "AVG" ]; then
export Job="Job-Averages"
export Project="IPVFB-AVG"
fi
cd /ora/mw_etl/Oracle_EDQ1/oracle.edq/
/ora/java/sunjdk/bin/java -jar jmxtools.jar runjob -job "${Job}" -project "${Project}" -u ${OEDQUser} -p ${OEDQPass} ${OEDQHOST}:${OEDQPORT}
export ReturnCode=${?}
if [ ${ReturnCode} == 0 ]; then
exit 0
else
exit 1
fi
謝謝!
你爲什麼要把所有的變量放在環境中?你可以在你的腳本中刪除每個出現'export'的單詞,並且你應該理解這樣做的含義。 – 2014-12-02 17:40:00
此外,最後6行(分配ReturnCode,然後使用它來指定參數退出)完全是多餘的。該腳本將以執行的最後一個命令的返回值退出。 (如果你真的關心將所有非零值映射到1,只要'test $?= 0',但你可能實際上並不關心這個。) – 2014-12-02 17:41:56
那麼,第一個if語句沒有完成,這個腳本將觸發所有工作,我正在嘗試測試它,看看它是否適用於此刻。另外我的BatchKey目前是硬編碼的。這將被刪除,並且在運行此腳本時,會傳遞一個參數。 – AJR 2014-12-02 17:54:44