2014-05-12 73 views
4
運行

因此,我正在學習一些bash,並試圖弄清楚如何獲取腳本運行的目錄。因此,考慮到我有我的劇本~/scripts/bash/myscript,如果我執行喜歡我的素文字:bash - 獲取目錄腳本從

[email protected] ~/dir/I/need/to/run/the/script/from $ ~/scripts/bash/myscript 

從我的腳本中,我怎樣才能從它正在執行的目錄,讓我在這種情況下獲得~/dir/I/need/to/run/the/script/from。喜歡的快捷鍵:

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

據我可以看到,他們都分配的腳本路徑DIR,但我在尋找劇本是從運行的路徑。

對此有何幫助?

謝謝! :)

+1

'pwd' should work。只要確保在做任何'cd'之前儘早調用它。 – choroba

+0

是不是爲了獲得腳本本身的路徑?我需要的是我的當前目錄,而不是腳本。如果沒有,請問我可以如何使用'readlink'來獲取我的目錄? thx – Gerard

+0

您正在尋找術語**當前工作目錄**,這個「腳本運行的目錄」的東西含糊不清。 –

回答

8

$PWD變量可能是你需要的。

$ cat >/tmp/pwd.bash <<'END' 
#!/bin/bash 
echo "\$0=$0" 
echo "\$PWD=$PWD" 
END 

$ chmod u+x /tmp/pwd.bash 

$ pwd 
/home/jackman 

$ /tmp/pwd.bash 
$0=/tmp/pwd.bash 
$PWD=/home/jackman 
+0

這就是我正在尋找!非常感謝!! – Gerard