web-dev-qa-db-ja.com

スクリプトの呼び出し元のディレクトリを取得します

/usr/binにスクリプトdoSmthがあります。ディレクトリを取得して印刷することは可能ですかスクリプトの呼び出し元

したがって、/home/meからdoSmthを呼び出すと、出力は/home/meになります。

10
Primož Kralj

シェルでコマンドを呼び出すと、新しいプロセスは親の作業ディレクトリを継承します。作業ディレクトリを取得するには、次の2つの方法があります。

echo "$PWD" # variable
pwd         # builtin command
11
jordanm

「それが呼び出されたディレクトリ」とは、その作業ディレクトリを意味しているようです。これは、たとえばcdを使用してスクリプト内で変更できますが、変更する前にpwdが出力します。変数$PWDにも含まれる可能性があります

変更後に初期作業ディレクトリが必要な場合は、それをスクリプトの上部に保存してください(変更する前に)

#!/bin/bash
initial_wd=`pwd`

# ... do a lot of stuff ...
# ⋮

cd "$initial_wd"

これを使用して、開始したディレクトリに戻る場合は、pushdおよびpopdも参照してください。

1
derobert