HOWTO · Bash
Bash スクリプトファイル名を取得する
このチュートリアルでは、Bash でファイル名を取得する方法について説明します。
この記事では、スクリプトによって独自のファイル名を取得する方法を示します。また、トピックを簡単にするために必要な例と説明が表示されます。
このタスクを実行するために利用できる多くの方法があります。しかし、これを行うための 3つの簡単な方法を見ていきます。
それらを見てみましょう。
Bash スクリプトのファイル名を取得するために basename コマンドを使用する
スクリプトのファイル名は、Bash に組み込まれているコマンドである basename コマンドを使用して取得できます。これを行うには、以下のコードに従う必要があります。
$ cat directory/ScriptName.sh
#!/bin/bash
echo "Your script name =" $(basename "$0")
スクリプトのファイル名を見つけるために、basename コマンドで $0 を使用したことがわかります。この $0 は、相対パスのファイル名を表す Bash の組み込み変数です。
コマンドを実行すると、以下の出力が表示されます。
$ directory/ScriptName.sh
Your script name = ScriptName.sh
Bash スクリプトのファイル名を取得するためにパラメータ展開を使用する
パラメータ展開を使用して同じタスクを実行することもできます。このメソッドで同じタスクを実行するには、以下のコードに従う必要があります。
$ cat directory/ScriptName.sh
#!/bin/bash
echo "Your script name = ${0##*/}"
パラメータの展開を示すために使用される記号の組み合わせ ${0##*/} を使用していることがわかります。コマンドを実行すると、以下の出力が表示されます。
$ directory/ScriptName.sh
Your script name = ScriptName.sh
BASH_SOURCE 変数を使用して Bash スクリプトファイル名を取得する
BASH_SOURCE は、ファイル名を含む Bash の組み込み環境変数です。この変数を使用してスクリプトのファイル名を見つけるには、以下のコードに従う必要があります。
$ cat directory/ScriptName.sh
#!/bin/bash
echo "Your script name =" $(basename "${BASH_SOURCE}")
コマンドを実行すると、以下の出力が表示されます。
$ directory/ScriptName.sh
Your script name = ScriptName.sh
この記事で使用されているすべてのコードは Bash で記述されていることに注意してください。Linux シェル環境でのみ機能します。