- 方法1: $0を使用する方法
#!/bin/bash script_dir=$(dirname "$0") echo "スクリプトのディレクトリ: $script_dir"
この方法では、Bash変数$0
は現在のスクリプトのパスを表します。dirname
コマンドを使って、スクリプトのパスからディレクトリ部分を抽出し、script_dir
変数に格納します。
- 方法2:
readlink
コマンドを使用する方法#!/bin/bash script_path=$(readlink -f "$0") script_dir=$(dirname "$script_path") echo "スクリプトのディレクトリ: $script_dir"
この方法では、readlink -f
コマンドを使用して、$0
のシンボリックリンクを解決し、絶対パスを取得します。その後、dirname
コマンドを使用してディレクトリ部分を抽出し、script_dir
変数に格納します。
- 方法3:
BASH_SOURCE
を使用する方法#!/bin/bash script_path="${BASH_SOURCE[0]}" script_dir=$(dirname "$script_path") echo "スクリプトのディレクトリ: $script_dir"
この方法では、Bash配列変数BASH_SOURCE
を使用して、現在のスクリプトのパスを取得します。dirname
コマンドを使ってディレクトリ部分を抽出し、script_dir
変数に格納します。