1. ホーム
  2. linux

[解決済み] Bashスクリプトでスクリプトファイル名を知るには?

2022-02-04 06:02:45

質問

Bashスクリプトのファイル名をスクリプトの内部で決定するにはどうしたらよいですか。

例えば、私のスクリプトがファイル runme.sh というメッセージをハードコーディングせずに表示させるにはどうしたらいいでしょうか?

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

me=`basename "$0"`

シンボリックリンクを読み込む場合 1 これは通常望むところではありません(通常、この方法でユーザーを混乱させたくありません)、試してみてください。

me="$(basename "$(test -L "$0" && readlink "$0" || echo "$0")")"

foo.shを実行したら、bar.shを実行していると表示された!? バグに違いない!" さらに、異なる名前のシンボリックリンクを持つ目的の一つは、呼び出された名前に基づいて異なる機能を提供することです(いくつかのプラットフォームでgzipとgunzipを考えてみてください)。


1 つまり、ユーザが以下のコマンドを実行したときに、シンボリックリンクを解決します。 foo.sh へのシンボリックリンクであり、実際には bar.sh を使用したい場合、解決された名前 bar.sh ではなく foo.sh .