簡體   English   中英

在另一個腳本提示下執行shell腳本:沒有這樣的文件或目錄

[英]Execute shell script whithin another script prompts: No such file or directory

(我是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 &只是最后的步驟。

有任何想法嗎 :( ?

你試過了嗎 ?

. ./SiebelMessageCreator.sh

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM