[英]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.sh
和nohup sh SiebelMessageSender.sh &
只是最后的步驟。
有任何想法嗎 :( ?
你試過了嗎 ?
. ./SiebelMessageCreator.sh
您還可以執行which sh
或which ksh
,然后修改第一行#!/bin/ksh
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.