2013-11-04 45 views
6

我有一個這樣的腳本:呼叫使用相對路徑,另一個腳本一個shell腳本

#!/bin/csh 
echo "This is the main programme" 
./printsth 

我想從使用相對路徑此腳本中調用腳本。有沒有辦法做到這一點?相對路徑我的意思是相對於我的調用腳本的路徑。

+1

您爲什麼認爲這不起作用?學習打開你的shell調試,例如'set -vx'(或類似的csh)和'echo $ cwd'等來查看你的位置。祝你好運。 – shellter

回答

4

您可以參考$cwd的當前工作目錄。因此,如果您想用相對於當前工作目錄的路徑調用,請使用$cwd開始行。

例如,如果你想調用在當前目錄下的,說:

$cwd/printsth 

如果你要撥打的一個目錄上面:

$cwd/../printsth 

確定這是一個csh雖然腳本(即第一行是#!/bin/csh)。如果是shbash腳本,則需要使用$PWD(用於'當前工作目錄'),而不是$cwd

編輯:

如果你想相對於腳本的目錄,而不是當前工作目錄的目錄,那麼你可以這樣做:

setenv SCRIPTDIR `dirname $0` 
$SCRIPTDIR/printsth 

,將設置$SCRIPTDIR到同一目錄原始腳本。然後你可以建立相關的路徑。

+0

你可以做到這一點,而不使用$ cwd和$ pwd – Programmer

+0

呃,實際上,'csh'的默認值是以任何方式使用當前工作目錄,所以'。/ printsth'會在CWD中查找。如果你想在原始腳本的同一目錄下查看,那實際上有點困難。你想要什麼? –

+0

我想在原文腳本 – Programmer

相關問題