2012-03-27 155 views

回答

12

shell腳本的當前(初始)目錄是您調用該腳本的目錄。

7

您可以通過在運行時檢查pwd的輸出來完成此操作。 這將打印目錄你目前在。不是腳本。

如果您的腳本不切換目錄,它會打印您從運行它的目錄

66

如前所述,該位置將是腳本被調用的位置。如果您希望腳本引用它的安裝位置,它非常簡單。下面是一個將打印PWD和已安裝目錄的代碼片段:

#!/bin/bash 
echo "Script executed from: ${PWD}" 

BASEDIR=$(dirname $0) 
echo "Script location: ${BASEDIR}" 
15

大多數答案都爲您提供當前路徑並且是上下文相關的。爲了從任何目錄運行腳本,請使用下面的代碼片段。

DIR="$(cd "$(dirname "$0")" && pwd)" 

通過在子shell切換目錄,就可以調用pwd並拿到劇本的正確路徑不管上下文。

然後您可以使用$DIR作爲"$DIR/path/to/file"