Bash
獲取呼叫腳本的目錄
我有一個腳本
doSmth
在/usr/bin
. 是否可以獲取並列印呼叫腳本的目錄?因此,如果我
doSmth
從/home/me
輸出呼叫將是/home/me
.
當您在 shell 中呼叫命令時,新程序會繼承父程序的工作目錄。這裡有兩種獲取工作目錄的方法:
echo "$PWD" # variable pwd # builtin command
通過“呼叫它的目錄”,您似乎是指它的工作目錄。您可以在腳本中使用 eg, 來更改它
cd
,但在您這樣做之前,pwd
會將其列印出來。它也可能在變數中$PWD
如果您在更改後需要初始工作目錄,只需將其保存在腳本頂部(更改之前)
#!/bin/bash initial_wd=`pwd` # ... do a lot of stuff ... # ⋮ cd "$initial_wd"
如果您使用它返回您開始時所在的目錄,另請參閱
pushd
和popd
。