我正在處理一個文件處理項目,並試圖在PuTTY中運行一個名爲runProcessing.sh的shell腳本。服務器使用ksh。我的主管告訴我在執行腳本時使用./ runProcessing.sh <param1> <param2>
,但是無論何時使用./它都表示cannot execute
或file not found
。每當我輸入runProcessing.sh
時,它都會返回空指針異常,我一直在努力繼續我的任務。使用./點斜槓運行shell腳本
我知道什麼時候運行腳本,但我不知道爲什麼它不工作,當我試圖運行我的腳本。任何提示或建議?我是Linux/UNIX的新手。
這裏是我的腳本:
#!/bin/ksh
#
# Script to download processing files from the appropriate target
#
# $Id: runProcessing.sh 604 2013-01-14 21:56:35Z alex_rempel $
#
DIR=`dirname $0`
. $DIR/setEnvironment.sh
java $LDAPRUNMODE $JAVAOPT com.webproject.db.processing.FPJob --logdir $CISLOGDIR --file [2] $*
RET=$?
if [ $RET -gt 0 ]
then
echo
echo
echo "------ runProcessing.sh Failed ------"
echo
echo
exit $RET
'。/ something'(指定當前目錄作爲找到某物的地方)和'。 (在當前shell中運行的東西而不是子進程)都是有意義的。 './ something'不是有效的用法。 –
...順便說一下,你的腳本是無效的,因爲它有一個'if'沒有'fi'。你還需要引用你的擴展,而不應該使用'$?' - 這裏沒有意義。 '如果! java ...;然後 ...; fi'足夠了,沒有理由存儲'$ RET'。另外,對於環境變量和內置變量以外的任何內容使用全大寫字母都是不好的形式。 (依賴字符串分割讓人們通過參數列表是特別糟糕的形式,但它在啓動Java應用程序的腳本中幾乎無處不在......幾乎所有這些都由對shell沒有絲毫線索的人編寫)。 –
在我的防守中,我模仿了我的腳本,在我公司構建過程中的類似腳本之後進行了類似的腳本處理,因此請原諒我所做的任何形式不當的事情。 – superdiazepam