web-dev-qa-db-ja.com

シェルスクリプトの現在のディレクトリ?

シェルスクリプトの現在のディレクトリは何ですか?呼び出し元のこの現在のディレクトリは?または、スクリプトが配置されたこのディレクトリ?

44
Suzan Cioc

シェルスクリプトの現在の(初期)ディレクトリは、スクリプトを呼び出したディレクトリです。

17

既に述べたように、場所はスクリプトの呼び出し元になります。スクリプトがインストール場所であるスクリプトを参照したい場合は、非常に簡単です。以下は、PWDとインストールされたディレクトリを印刷するスニペットです

#!/bin/bash
echo "Script executed from: ${PWD}"

BASEDIR=$(dirname $0)
echo "Script location: ${BASEDIR}"
94
krg

ほとんどの答えは現在のパスを取得し、コンテキストに依存します。任意のディレクトリからスクリプトを実行するには、以下のスニペットを使用します。

DIR="$( cd "$( dirname "$0" )" && pwd )"

サブシェルでディレクトリを切り替えることにより、pwdを呼び出して、コンテキストに関係なくスクリプトの正しいパスを取得できます。

$DIR"$DIR/path/to/file"として使用できます

25
saada

実行時にpwdからの出力を確認することで、これを自分で行うことができます。これにより、ディレクトリが表示されます現在あなたがいる。スクリプトではありません。

スクリプトがディレクトリを切り替えない場合、実行元のディレクトリが出力されます。

7
keyser