スクリプトのパスを取得する必要があります。すでに同じディレクトリにいる場合、pwd
を使用してそれを行うことができます。オンラインで検索し、これを見つけました
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
しかし、私はそれを使用する方法はありません。
Bashは、ソースファイルのパス名の配列である_BASH_SOURCE
_を含む多くの変数を保持しています。
_${}
_は、変数の引用の一種として機能します。
$()
は、コマンドの一種の引用として機能しますが、独自のコンテキストで実行されます。
dirname
は、提供された引数のパス部分を提供します。
cd
は、現在のディレクトリを変更します。
pwd
は現在のパスを示します。
_&&
_は論理的なand
ですが、このインスタンスではコマンドを次々に実行する副作用のために使用されます。
要約すると、そのコマンドはスクリプトのソースファイルのパス名を取得し、パス部分だけを削除し、cd
sをそのパスに削除し、pwd
を使用してスクリプトの(実質的に)フルパスを返します。これはDIR
に割り当てられます。その後、コンテキストは巻き戻されるため、スクリプトのパスを含む環境変数DIR
を使用して開始したディレクトリに戻ります。