LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: hhyyy9

新接到公司任务急需将,CMD文件转换为LINUX启动文件。希望高手帮忙

[复制链接]
发表于 2004-4-27 17:48:59 | 显示全部楼层
錯誤應該是if [ -n "$SYSSOFT_DXP_HOME" ]; 的判斷結果是假而且當前目錄下沒有"runserver.sh" 這個文件,
set SYSSOFT_DXP_HOME=/usr/local/trs
export SYSSOFT_DXP_HOME
沒有起作用,試試
SYSSOFT_DXP_HOME=/usr/local/trs
(腳本內部的變量而不是SHELL的環境變量)
 楼主| 发表于 2004-4-27 18:32:45 | 显示全部楼层

修改好的runserver.sh,

[PHP]#!/bin/bash
# $Id: run.bat,v 1.0.0.0 2001/10/31 11:52:05 larryi Exp $
# Startup batch file for dxp System.
#runserver.sh

# This batch file written and tested under GNU/Linux i686
# Improvements to this file are welcome

SYSSOFT_DXP_HOME="/usr/local/trs"
echo $SYSSOFT_DXP_HOME

if [ -n $SYSSOFT_DXP_HOME ]; then
  CLASSPATH="$SYSSOFT_DXP_HOME/syssoftdxp.jarSYSSOFT_DXP_HOME/DxpDemo.jarSYSSOFT_DXP_HOME/lib/jdom.jarSYSSOFT_DXP_HOME/lib/syssoftutil.jarSYSSOFT_DXP_HOME/lib/classes12.jarSYSSOFT_DXP_HOME/lib/xerces.jarSYSSOFT_DXP_HOME/lib/jce1.2.1jce1_2_1.jarSYSSOFT_DXP_HOME/lib/jce1.2.1sunjce_provider.jarSYSSOFT_DXP_HOME/lib/mysql-connector-java-3.0.11-stable-bin.jar"
  java -classpath $CLASSPATH com.syssoft.dxp.DxpRecieveData
else
echo "Unable to determine the value of SYSSOFT_DXP_HOME"
fi

if [ -e $SYSSOFT_DXP_HOME/runserver.sh ]; then
  CLASSPATH="$SYSSOFT_DXP_HOME/syssoftdxp.jarSYSSOFT_DXP_HOME/DxpDemo.jarSYSSOFT_DXP_HOME/lib/jdom.jar:$SYSSOFT_DXP_HOME/lib/syssoftutil.jar:$SYSSOFT_DXP_HOME/lib/classes12.jar:$SYSSOFT_DXP_HOME/lib/xerces.jar:$SYSSOFT_DXP_HOME/lib/jce1.2.1jce1_2_1.jar:$SYSSOFT_DXP_HOME/lib/jce1.2.1sunjce_provider.jar:$SYSSOFT_DXP_HOME/lib/mysql-connector-java-3.0.11-stable-bin.jar"
  java -classpath $CLASSPATH com.syssoft.dxp.DxpRecieveData
else
echo "Unable to determine the value of SYSSOFT_DXP_HOME"
fi
[/PHP]


错误:
---------------
/usr/local/trs/runserver.sh: java: command not found
/usr/local/trs/runserver.sh: java: command not found

是不是我的java环境有问题?
 楼主| 发表于 2004-4-27 18:40:46 | 显示全部楼层
我安装后在profile也加入了路径设置,为什么输入
[root@www root]# java
bash: java: command not found
。。。。
 楼主| 发表于 2004-4-27 18:43:11 | 显示全部楼层
[root@www root]# echo $JAVA_HOME
/usr/local/j2sdk1.4.2_04
[root@www root]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/j2sdk1.4/jre/bin:/usr/X11R6/bin:/root/bin
[root@www root]# echo $CLASSPATH
.:/usr/local/j2sdk1.4.2_04/lib:/usr/local/j2sdk1.4.2_04/jre/lib:/usr/local/j2sdk1.4.2_04/lib/rt.jar:/usr/local/j2sdk1.4.2_04/lib/tools.jar
 楼主| 发表于 2004-4-27 18:44:12 | 显示全部楼层
都是正确的啊!还请bigml兄和各位高手指教!
 楼主| 发表于 2004-4-27 19:32:22 | 显示全部楼层

已经成功!不过谢谢大家帮助,我的第一个shell终于写出来了!

[PHP]#!/bin/bash
# $Id: run.bat,v 1.0.0.0 2001/10/31 11:52:05 larryi Exp $
# Startup batch file for dxp System.

# This batch file written and tested under GNU/Linux i686
# Improvements to this file are welcome

SYSSOFT_DXP_HOME="/trs"
#echo $SYSSOFT_DXP_HOME

if [ -n $SYSSOFT_DXP_HOME ]; then
  CLASSPATH="$SYSSOFT_DXP_HOME/syssoftdxp.jarSYSSOFT_DXP_HOME/DxpDemo.jarSYSSOFT_DXP_HOME/lib/jdom.jarSYSSOFT_DXP_HOME/lib/syssoftutil.jarSYSSOFT_DXP_HOME/lib/classes12.jarSYSSOFT_DXP_HOME/lib/xerces.jarSYSSOFT_DXP_HOME/lib/jce1.2.1jce1_2_1.jarSYSSOFT_DXP_HOME/lib/jce1.2.1sunjce_provider.jarSYSSOFT_DXP_HOME/lib/mysql-connector-java-3.0.11-stable-bin.jar"
  java -classpath $CLASSPATH com.syssoft.dxp.DxpRecieveData
else
echo "Unable to determine the value of SYSSOFT_DXP_HOME"
fi

if [ -e $SYSSOFT_DXP_HOME/runserver.sh ]; then
  CLASSPATH="$SYSSOFT_DXP_HOME/syssoftdxp.jarSYSSOFT_DXP_HOME/DxpDemo.jarSYSSOFT_DXP_HOME/lib/jdom.jar:$SYSSOFT_DXP_HOME/lib/syssoftutil.jar:$SYSSOFT_DXP_HOME/lib/classes12.jar:$SYSSOFT_DXP_HOME/lib/xerces.jar:$SYSSOFT_DXP_HOME/lib/jce1.2.1jce1_2_1.jar:$SYSSOFT_DXP_HOME/lib/jce1.2.1sunjce_provider.jar:$SYSSOFT_DXP_HOME/lib/mysql-connector-java-3.0.11-stable-bin.jar"
  java -classpath $CLASSPATH com.syssoft.dxp.DxpRecieveData
else
echo "Unable to determine the value of SYSSOFT_DXP_HOME"
fi

[/PHP]
发表于 2004-4-27 22:21:32 | 显示全部楼层
注意,你的脚本有很显著的逻辑错误。
如你所言,脚本要执行的start段如下,注意,你脚本里的两段start是相同的:
[php]
CLASSPATH="$SYSSOFT_DXP_HOME/syssoftdxp.jarSYSSOFT_DXP_HOME/DxpDemo.jarSYSSOFT_DXP_HOME/lib/jdom.jarSYSSOFT_DXP_HOME/lib/syssoftutil.jarSYSSOFT_DXP_HOME/lib/classes12.jarSYSSOFT_DXP_HOME/lib/xerces.jarSYSSOFT_DXP_HOME/lib/jce1.2.1jce1_2_1.jarSYSSOFT_DXP_HOME/lib/jce1.2.1sunjce_provider.jarSYSSOFT_DXP_HOME/lib/mysql-connector-java-3.0.11-stable-bin.jar"
  java -classpath $CLASSPATH com.syssoft.dxp.DxpRecieveData

[/php]
而执行的条件有二,它们按优先级排列。
[php]
[ -n $SYSSOFT_DXP_HOME ]  #高优先级
[ -e $SYSSOFT_DXP_HOME/runserver.sh ] #低优先级
[/php]

按你的脚本流程下去,如果两种条件都满足,你的start段将会被执行两次,这是预料之外的。


所以,求精后的脚本如下:
[php]
#!/bin/bash
# $Id: run.bat,v 1.0.0.0 2001/10/31 11:52:05 larryi Exp $
# Startup batch file for dxp System.

# This batch file written and tested under GNU/Linux i686
# Improvements to this file are welcome

SYSSOFT_DXP_HOME="/trs"
#echo $SYSSOFT_DXP_HOME

if [ -n $SYSSOFT_DXP_HOME ] || [ -e $SYSSOFT_DXP_HOME/runserver.sh ]; then
  CLASSPATH="$SYSSOFT_DXP_HOME/syssoftdxp.jarSYSSOFT_DXP_HOME/DxpDemo.jarSYSSOFT_DXP_HOME/lib/jdom.jar:$SYSSOFT_DXP_HOME/lib/syssoftutil.jar:$SYSSOFT_DXP_HOME/lib/classes12.jar:$SYSSOFT_DXP_HOME/lib/xerces.jar:$SYSSOFT_DXP_HOME/lib/jce1.2.1jce1_2_1.jar:$SYSSOFT_DXP_HOME/lib/jce1.2.1sunjce_provider.jar:$SYSSOFT_DXP_HOME/lib/mysql-connector-java-3.0.11-stable-bin.jar"
  java -classpath $CLASSPATH com.syssoft.dxp.DxpRecieveData
else
echo "Unable to determine the value of SYSSOFT_DXP_HOME"
fi
[/php]

另外,我不熟悉java的配置,但觉得你的思路有点奇怪。
你定义了SYSSOFT_DXP_HOME,那么它永不为空,也就是说,脚本的if判断是无效的,因为[ -n $SYSSOFT_DXP_HOME ]永远为真,所以它只会也只能执行start段。
 楼主| 发表于 2004-4-28 07:37:50 | 显示全部楼层

哦!谢谢home_king兄指点一二!我修改如下!

#!/bin/bash
# $Id: run.bat,v 1.0.0.0 2001/10/31 11:52:05 larryi Exp $
# Startup batch file for dxp System.

# This batch file written and tested under GNU/Linux i686
# Improvements to this file are welcome

SYSSOFT_DXP_HOME="/usr/local/trs"
#echo $SYSSOFT_DXP_HOME

if [ -n $SYSSOFT_DXP_HOME ] || [ -e $SYSSOFT_DXP_HOME/runserver.sh ]; then
  CLASSPATH="$SYSSOFT_DXP_HOME/syssoftdxp.jarSYSSOFT_DXP_HOME/DxpDemo.jarSYSSOFT_DXP_HOME/lib/jdom.jarSYSSOFT_DXP_HOME/lib/syssoftutil.jarSYSSOFT_DXP_HOME/lib/classes12.jarSYSSOFT_DXP_HOME/lib/xerces.jarSYSSOFT_DXP_HOME/lib/jce1.2.1/jce1_2_1.jarSYSSOFT_DXP_HOME/lib/jce1.2.1/sunjce_provider.jarSYSSOFT_DXP_HOME/lib/mysql-connector-java-3.0.11-stable-bin.jar"
  java -classpath $CLASSPATH com.syssoft.dxp.DxpRecieveData
SYSSOFT_DXP_HOME=.
else
SYSSOFT_DXP_HOME=
echo "Unable to determine the value of SYSSOFT_DXP_HOME."
fi
发表于 2004-4-29 15:51:10 | 显示全部楼层

home_king 好厉害啊

俺当年是从山东农业大学毕业底,嘿嘿……
发表于 2004-4-29 15:56:40 | 显示全部楼层

回复: home_king 好厉害啊

最初由 hiweed 发表
俺当年是从山东农业大学毕业底,嘿嘿……

修行在自身。
呵呵,现在的农业大学都走向综合化了,远远不单纯地搞农业。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表