.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
我正在将 .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