开发者社区> 问答> 正文

在Solaris服务器上启动carte.sh报错?报错


使用SSH2连接到服务器后,进入kettle根目录后启动carte.sh报如下错误:

$java -version

java version "1.6.0_65"

Java(TM) SE Runtime Environment (build 1.6.0_65-b14)

$ls -l carte.sh

-rwxr--r--   1 infa     infa        2177 Nov 16  2010 carte.sh

$./carte.sh

./carte.sh: -: does not exist

提示错误信息就一行,感觉非常莫名其妙。

当前carte.sh具有执行的权限,Java环境已存在,是否有同僚遇到这个问题,恳请指导。

展开
收起
爱吃鱼的程序员 2020-06-14 17:23:27 542 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    已经解决:
    只要将第一行的代码改为下述代码即可:
    #!/bin/bash

    原因是Solaris使用sh<spanstyle="line-height:1.5;font-size:10pt;">来打开这个文件的话不支持cd-这种指令

    .sh文件时有系统shell执行的,跟java有什么关系,可以把carte.sh文件内容贴出来看看


    <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:normal;background-color:#FFFFFF;">carte.sh文件,是kettle这边通用的脚本,我比较过,官方的安装包都是一样的脚本代码<preclass="brush:shell;toolbar:true;auto-links:false;">#!/bin/sh#************************************** #LibrariesusedbyKettle:#************************************************BASEDIR=dirname$0cd$BASEDIRDIR=pwdcd-."$DIR/set-pentaho-env.sh"setPentahoEnvCLASSPATH=$BASEDIRCLASSPATH=$CLASSPATH:$BASEDIR/lib/kettle-core.jarCLASSPATH=$CLASSPATH:$BASEDIR/lib/kettle-db.jarCLASSPATH=$CLASSPATH:$BASEDIR/lib/kettle-engine.jar#******************************************#JDBC&otherlibrariesusedbyKettle:#**********************************************forfinfind$BASEDIR/libext-typef-name"*.jar"``find$BASEDIR/libext-typef-name"*.zip"doCLASSPATH=$CLASSPATH:$fdone#**********************************************************#Setjavaruntimeoptions#Change512mtohighervaluesincaseyourunoutofmemory#orsetthePENTAHO_DI_JAVA_OPTIONSenvironmentvariable#(JAVAMEMOPTIONSisthereforcompatibilityreasons)#******************************************************************if[-z"$JAVAMEMOPTIONS"];thenJAVAMEMOPTIONS="-Xmx512m"fiif[-z"$PENTAHO_DI_JAVA_OPTIONS"];thenPENTAHO_DI_JAVA_OPTIONS=$JAVAMEMOPTIONSfiOPT="$PENTAHO_DI_JAVA_OPTIONS-cp$CLASSPATH-Dorg.mortbay.util.URI.charset=UTF-8-Djava.library.path=$LIBPATH-DKETTLE_HOME=$KETTLE_HOME-DKETTLE_REPOSITORY=$KETTLE_REPOSITORY-DKETTLE_USER=$KETTLE_USER-DKETTLE_PASSWORD=$KETTLE_PASSWORD-DKETTLE_PLUGIN_PACKAGES=$KETTLE_PLUGIN_PACKAGES-DKETTLE_LOG_SIZE_LIMIT=$KETTLE_LOG_SIZE_LIMIT"#*********************************************************** #SetuptheoptionsforJAAS#******************************************************************if[!"x$JAAS_LOGIN_MODULE_CONFIG"="x"-a!"x$JAAS_LOGIN_MODULE_NAME"="x"];thenOPT=$OPT"-Djava.security.auth.login.config=$JAAS_LOGIN_MODULE_CONFIG"OPT=$OPT"-Dloginmodulename=$JAAS_LOGIN_MODULE_NAME"fi#***** #Run...#**********"$_PENTAHO_JAVA"$OPTorg.pentaho.di.www.Carte"${1+$@}"



    @<atarget="_blank"rel="nofollow">大梦想家

    不知你问题解决没有 

    我觉得是没找到执行的shell,可以使用whichsh查看一下sh的具体路径 

    原来这样啊,活到老,学到老

    2020-06-14 17:23:43
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS块储存产品全面解析 立即下载