在另一个脚本中执行shell脚本提示:没有这样的文件或目录

时间:2016-03-25 01:17:46

标签: linux bash shell unix

(我是shell脚本的新手。)

我一直坚持这个问题。我尝试了不同的方法,但没有运气。

说明

当我的脚本尝试运行另一个我不拥有的脚本(SiebelMessageCreator.sh)时,它会提示:

-bash: ./SiebelMessageCreator.sh: No such file or directory

但该文件存在且具有执行权限:

-rwxr-xr-x 1 owner ownergrp      322 Jun 11  2015 SiebelMessageCreator.sh

执行脚本执行的代码是:

(cd $ScriptPath; su -c './SiebelMessageCreator.sh' - owner; su -c 'nohup sh SiebelMessageSender.sh &' - owner;)

它在子shell中,因为我首先认为它是抛出该消息,因为我的脚本在我的主目录中运行(当我运行脚本时我是root用户并且我已经移动到我的非root主目录运行该脚本因为我无法将我的脚本[策略]移动到另一个脚本所在的目录。)

我也试过了sh SCRIPT.sh ./SCRIPT.sh。并且将shebang从bash更改为ksh,因为SiebelMessageCreator.sh具有该shell。

su -c 'sh SCRIPT.sh' - owner是必要的。如果脚本以root身份运行而不是作为所有者运行,那么它会(/)(这是我的合作伙伴根据他们以root身份执行它的经验告诉我的)。所以我作为所有者执行它。

我在研究中发现的另一件事是,如果它是符号链接,它可以抛出该信息。我真的不确定脚本的内容是否是一个符号链接。这是:

#!/bin/ksh
BASEDIRROOT=/path/to/file/cpp-plwsutil-c
ore-runtime.jar (path changed on purpose for this question)

java -classpath $BASEDIRROOT com.hp.cpp.plwsutil.SiebelMessageCreator

exitCode=$?

echo "`date -u '+%Y-%m-%d %H:%M:%S %Z'` - Script execution finished with exit code $exitCode."
exit $exitCode

正如您所看到的那样,它只是一个非常简单的脚本,只能调用.jar。但我也无法将其添加到我的脚本[政策]。

如果我手动运行./SiebelMessageCreator.sh,它就可以了。但不是我的脚本。我想丢弃我用google搜索时发现的x64 x32位问题?

顺便说一下,我正在自动执行某些任务,./SiebelMessageCreator.shnohup sh SiebelMessageSender.sh &只是最后一步。

任何想法:(?

1 个答案:

答案 0 :(得分:0)

你尝试过吗?

. ./SiebelMessageCreator.sh

您还可以执行which shwhich ksh,然后修改第一行#!/bin/ksh