web-dev-qa-db-ja.com

シェルスクリプトを実行している現在のディレクトリを検出するにはどうすればよいですか?

シェルスクリプトが実行されているディレクトリの名前(または、パス全体)を検出するにはどうすればよいですか?

20
goe

どのシェル?どのオペレーティングシステムですか?

手始めに試してみてください

man pwd
$PWD
21
Anycorn

これは、最もポータブルな方法だと思います。

dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
16
glenn jackman

これは見た目ほど簡単ではありません。チェックアウト この質問 および これ

3
Pekka 웃

別の方法

pid=$$
path=$(ps -eo pid,args| awk -vp=$pid '$1~p{print $3}')
case "$path" in
    ./* ) pwd;;
    * ) echo $path;;
esac
0
ghostdog74