1. ホーム
  2. bash

[解決済み] 実行中のBASHスクリプトのパスを決定する [重複].

2022-08-23 11:39:20

質問

重複の可能性があります。

Bashスクリプトは、それがどのディレクトリに格納されているかを知ることができますか?

Windows のコマンドスクリプトでは、ディレクトリを判断するために ディレクトリ を使用して、現在実行中のスクリプトのパスを決定することができます。 %~dp0 . 例えば

@echo Running from %~dp0

に相当するものは何でしょう? BASH スクリプトではどうでしょうか?

どのように解決するのですか?

相対パスの場合(つまり Windows の %~dp0 ):

MY_PATH=$(dirname "$0")
echo "$MY_PATH"

絶対パス、正規化パスの場合。

MY_PATH=$(dirname "$0")            # relative
MY_PATH=$(cd "$MY_PATH" && pwd)    # absolutized and normalized
if [[ -z "$MY_PATH" ]] ; then
  # error; for some reason, the path is not accessible
  # to the script (e.g. permissions re-evaled after suid)
  exit 1  # fail
fi
echo "$MY_PATH"