7
$ 0には常にスクリプトへのパスが含まれますか?
上部のコメントセクションからヘルプとバージョン情報を印刷できるように、現在のスクリプトをgrepしたいと思います。 私はこのようなことを考えていました: grep '^#h ' -- "$0" | sed -e 's/#h //' しかし、スクリプトがPATHにあるディレクトリにあり、ディレクトリを明示的に指定せずに呼び出された場合はどうなるのだろうと思いました。 特殊変数の説明を検索したところ、次の説明が見つかりました$0。 現在のシェルまたはプログラムの名前 現在のスクリプトのファイル名 スクリプト自体の名前 実行されたときのコマンド これらのいずれ$0も、スクリプトがディレクトリなしで呼び出された場合にの値にディレクトリが含まれるかどうかを明確にしません。最後の1つは、実際にはそうではないことを意味します。 私のシステムでのテスト(Bash 4.1) / usr / local / binにscriptnameという実行可能ファイルを1行echo $0で作成し、別の場所から呼び出しました。 これらは私の結果です: > cd /usr/local/bin/test > ../scriptname ../scriptname > cd /usr/local/bin > ./scriptname ./scriptname > cd /usr/local > bin/scriptname bin/scriptname > cd /tmp …
11
shell-script
path