Bashで現在のスクリプトディレクトリを取得する方法


  1. $0とdirnameコマンドを使用する方法:

    #!/bin/bash
    SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
    echo "現在のスクリプトディレクトリ: $SCRIPT_DIR"

    この方法では、$0はスクリプト自体のフルパスを表します。readlinkコマンドを使用して、$0のシンボリックリンクを解決し、その結果をdirnameコマンドに渡します。これにより、スクリプトのディレクトリパスが取得されます。

  2. BASH_SOURCEを使用する方法:

    #!/bin/bash
    SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
    echo "現在のスクリプトディレクトリ: $SCRIPT_DIR"

    BASH_SOURCEは、現在のスクリプトファイルのパスを含む配列です。この方法では、cdコマンドとpwdコマンドを組み合わせて、スクリプトのディレクトリパスを取得します。

  3. PWD変数を使用する方法:

    #!/bin/bash
    SCRIPT_DIR=$PWD/$(dirname "$0")
    echo "現在のスクリプトディレクトリ: $SCRIPT_DIR"

    この方法では、PWD変数を使用して現在の作業ディレクトリのパスを取得し、dirnameコマンドを使用して$0のディレクトリ名を取得します。

これらの方法は、Bashスクリプト内で現在のスクリプトディレクトリを取得するための一般的な手法です。必要に応じて、これらのコード例を使用して、ブログ投稿を作成してください。