シェルスクリプトの現在のディレクトリは何ですか?呼び出し元のこの現在のディレクトリは?または、スクリプトが配置されたこのディレクトリ?
シェルスクリプトの現在の(初期)ディレクトリは、スクリプトを呼び出したディレクトリです。
既に述べたように、場所はスクリプトの呼び出し元になります。スクリプトがインストール場所であるスクリプトを参照したい場合は、非常に簡単です。以下は、PWDとインストールされたディレクトリを印刷するスニペットです
#!/bin/bash
echo "Script executed from: ${PWD}"
BASEDIR=$(dirname $0)
echo "Script location: ${BASEDIR}"
ほとんどの答えは現在のパスを取得し、コンテキストに依存します。任意のディレクトリからスクリプトを実行するには、以下のスニペットを使用します。
DIR="$( cd "$( dirname "$0" )" && pwd )"
サブシェルでディレクトリを切り替えることにより、pwd
を呼び出して、コンテキストに関係なくスクリプトの正しいパスを取得できます。
$DIR
を"$DIR/path/to/file"
として使用できます
実行時にpwd
からの出力を確認することで、これを自分で行うことができます。これにより、ディレクトリが表示されます現在あなたがいる。スクリプトではありません。
スクリプトがディレクトリを切り替えない場合、実行元のディレクトリが出力されます。