.bat 到 .sh 的翻译

.bat to .sh translation

我正在将 .bat 转换为 .sh 以测试 JavaEE 程序的批处理,但我仍然有错误。你知道我做错了什么吗?

#!/bin/sh
# PROVIDER_URL BATCHBEAN BATCHNAME BATCHPARAMS exist

export USER_INSTALL_ROOT=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/
export PARM1=-Dcom.ibm.SSL.ConfigURL=$USER_INSTALL_ROOT/properties/ssl.client.props
export PARM2=-Dcom.ibm.CORBA.ConfigURL=file:/$USER_INSTALL_ROOT/properties/sas.client.props
export PARM3=-Dcom.ibm.CORBA.loginUserid=login
export PARM4=-Dcom.ibm.CORBA.loginPassword=psw
export PARM5=-Dcom.ibm.CORBA.loginSource=properties
export PARM=$PARM1 $PARM2 $PARM3 $PARM4 $PARM5
#   export: -Dcom.ibm.CORBA.ConfigURL: bad variable name

export CCJ_LIB=/myPath
export CLASSPATH=/opt/IBM/WebSphere/AppServer/runtimes/com.ibm.ws.ejb.thinclient_9.0.jar
export CLASSPATH=$CLASSPATH;$CCJ_LIB/myJar.jar
#   Permission denied

export MAINCLASS=com.projet.module.batch.BatchLauncher
export ALL_PARAMS=$PARM $MAINCLASS $BATCHBEAN $BATCHNAME $BATCHPARAMS

export JAVA_HOME=/opt/IBM/WebSphere/AppServer/java/8.0
export JAVA_CMD=%JAVA_HOME%/bin/java

$JAVA_CMD -classpath $CLASSPATH -DPROVIDER_URL=$PROVIDER_URL -Djava.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory $ALL_PARAMS

目前有两行错误,我在下面评论的那两行

第一个错误:

# Incorrect
export PARM=$PARM1 $PARM2 $PARM3 $PARM4 $PARM5

这将 $PARM2 的扩展视为要导出的另一个名称,而不是将所有 5 个编号参数的扩展设置为 PARM 的值。你需要双引号:

# Correct
export PARM="$PARM1 $PARM2 $PARM3 $PARM4 $PARM5"

第二个错误:

# Incorrect
export CLASSPATH=$CLASSPATH;$CCJ_LIB/myJar.jar

这是一个导出命令,然后尝试将您的 Jar 文件作为命令执行。分号应该是冒号。

# Correct
export CLASSPATH=$CLASSPATH:$CCJ_LIB/myJar.jar

第三个错误:

# Incorrect
export ALL_PARAMS=$PARM $MAINCLASS $BATCHBEAN $BATCHNAME $BATCHPARAMS

和以前一样,您缺少双引号。

# Correct
export ALL_PARAMS="$PARM $MAINCLASS $BATCHBEAN $BATCHNAME $BATCHPARAMS"

第四个错误:

# Incorrect
export JAVA_CMD=%JAVA_HOME%/bin/java

%JAVA_HOME% 不是参数展开,只是一个普通的字符串。由于您在其他地方进行了正确的扩展,这看起来像是一个疏忽。

# Correct
export JAVA_CMD=$JAVA_HOME/bin/java