如何将参数传递给unix shell脚本以在unix环境中运行作业

时间:2017-06-27 10:28:42

标签: bash shell unix

我正在尝试运行一个.sh脚本,它基本上会触发一个作业,我试图将参数传递给.sh文件,但我反复得到错误。这个sh将运行一个脚本并执行一个将产生的批处理一些输出并保存在文件中。

以下是文件夹结构enter image description here

JAVA=$APPSERVER/java/bin
BATCHPROGRAM=com.i21.framework.SystemBootstrap
APPNAME=BATCH_${REGION}
APPDIR=/apps/$APPNAME
#FRAMEWORKDIR=$APPDIR/Framework
BATCHDIR=$APPDIR/DNQLETTER
FRAMEWORKJARLOC=$APPDIR/lib
BATCHJARLOC=$BATCHDIR/lib

FRAMEWORKCONFIG=$APPDIR/config/
BATCHCONFIG=$BATCHDIR/config/

LOG=/logs21C/$APPNAME/DNQLETTER/
DATE_TIME_STAMP=`$DATE +%Y%m%d.log`;
LOGFILE="${LOG}/batch"_"$DATE_TIME_STAMP"

#--------------------------------------------------------------------
# Create the error file and the log file if they do not exist
#--------------------------------------------------------------------
$TOUCH $LOGFILE
$CHMOD 666 $LOGFILE  2>> /dev/null

这是我得到的错误

./ProcessBatch.sh DEV1 This i am trying using to pass the BATCH Region

我收到以下错误

/bin/touch: cannot touch `/logs21C/BATCH_/DNQLETTER//batch_20170627.log': No such file or directory
./ProcessBatch.sh[80]: /logs21C/BATCH_/DNQLETTER//batch_20170627.log: cannot 
create [No such file or directory]
/bin/ls: /apps/BATCH_/lib/*.jar: No such file or directory
/bin/ls: /apps/BATCH_/DNQLETTER/lib/*.jar: No such file or directory
/bin/ls: /apps/BATCH_/DNQLETTER/config//*.*: No such file or directory
/bin/ls: /apps/BATCH_/config//*.*: No such file or directory

1 个答案:

答案 0 :(得分:1)

我会从LOG的定义中删除最终的斜杠,但这不是您遇到的错误的原因(它可能会在以后引起麻烦)。错误的原因是:

  1. 您的错误消息表示目录/logs21C/BATCH_/DNQLETTER不存在。

  2. 我们还可以看到变量REGION为空。