/usr/bin
にスクリプトdoSmth
があります。ディレクトリを取得して印刷することは可能ですかスクリプトの呼び出し元?
したがって、/home/me
からdoSmth
を呼び出すと、出力は/home/me
になります。
シェルでコマンドを呼び出すと、新しいプロセスは親の作業ディレクトリを継承します。作業ディレクトリを取得するには、次の2つの方法があります。
echo "$PWD" # variable
pwd # builtin command
「それが呼び出されたディレクトリ」とは、その作業ディレクトリを意味しているようです。これは、たとえばcd
を使用してスクリプト内で変更できますが、変更する前にpwd
が出力します。変数$PWD
にも含まれる可能性があります
変更後に初期作業ディレクトリが必要な場合は、それをスクリプトの上部に保存してください(変更する前に)
#!/bin/bash
initial_wd=`pwd`
# ... do a lot of stuff ...
# ⋮
cd "$initial_wd"
これを使用して、開始したディレクトリに戻る場合は、pushd
およびpopd
も参照してください。