Bash

獲取呼叫腳本的目錄

  • September 17, 2018

我有一個腳本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"

如果您使用它返回您開始時所在的目錄,另請參閱pushdpopd

引用自:https://unix.stackexchange.com/questions/52916