次のBashスクリプトが与えられたら(と呼びますfoo.sh
):
#!/usr/bin/env bash
cat <<EOF
\$0: $0
\$BASH_SOURCE: ${BASH_SOURCE[0]}
EOF
次にエイリアスを作成します。
$ alias bar='./foo.sh'
実行すると、bar
出力は次のようになります。
$ bar
$0: ./foo.sh
$BASH_SOURCE: ./foo.sh
変数があるかどうか(スクリプト自体から)取得できる他の方法があるかどうかを知りたいです。コマンド/別名スクリプト呼び出し用 - この場合、bar
必要な出力は次のとおりです。
$ bar
$0: ./foo.sh
$BASH_SOURCE: ./foo.sh
$SOME_MAGIC_VARIABLE: bar
私がこれをしたいのは、同じスクリプトファイルでコード/関数を共有できますが、状況によっては異なる方法で実行できるからです。どのようにコマンドが呼び出されました。 whereuptime
とw
are は同じバイナリですが、呼び出される項目によって異なる機能を実行します。