[解決済み] bash スクリプトの "${BASH_SOURCE[0]}" と $( cd $( dirname "xxx" && pwd )) の意味について
2022-02-10 11:27:10
質問
これは、bashスクリプトの一部です。
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
source $DIR/framework.sh $@
この2行の意味を誰か説明してください。どうやら${BASH_SOURCE[0]}が存在するディレクトリに移動して
pwd
の結果をDIRに渡すのですが、${BASH_SOURCE[0]}という構文がまず理解できません。bashには変数配列があるのでしょうか。
DIR=$( $( dirname "${BASH_SOURCE[0]}" )" )
?
解決方法は?
最初の行は
絶対
ではなく、スクリプトのパスを指定します。
相対
のパスが必要です。相対パスは次のようなものです
somedir/myscript.sh
がどこにあるかわからない場合
somedir
があります。絶対パスは次のようなものです。
/home/seumasmac/somedir/myscript.sh
この場合、スクリプトがファイルシステム上のどこにあるかが正確にわかります。
${BASH_SOURCE[0]}
には、スクリプトの呼び出しに使用されるパスが含まれます。したがって、次のようなものが返されるかもしれません。
somedir/myscript.sh
. と似ていますね。
$0
主な違いは、スクリプトが直接呼び出されるのではなく、ソースとして提供される場合にも機能することです。
もし、あなたが
dirname somedir/myscript.sh
を返すだけです。
somedir
. そこで、このスクリプトでは、代わりに
cd
を
somedir
を実行し、その後に
pwd
. これで、ディレクトリへの完全な絶対パスが得られます。
2行目には
framework.sh
を使用して、同じディレクトリから
source
コマンドを実行します。
関連
-
[解決済み] シンタックスエラー」が発生しました。"(" unexpected' (expecting "done") [duplicate]".
-
[解決済み] bash file returns unexpected token `$'dottpr''
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで標準出力と標準エラーの両方をファイルにリダイレクトして追記する方法
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
-
[解決済み] bashシェルスクリプトの全引数を伝搬させる
-
[解決済み】Bashでファイル名と拡張子を抽出する。
-
[解決済み】Bashスクリプトでクリップボードにパイプを接続する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】SEDをワイルドカードで使用する場合
-
[解決済み] '\r': command not found - .bashrc / .bash_profile [duplicate].
-
[解決済み] Bashで文字列から改行を削除する方法
-
[解決済み] etc/profileでVISIBLE=NOWを設定するのはなぜですか?
-
[解決済み] パイプと二重パイプのどちらの OR 演算子を使うか?
-
[解決済み] condaのアップデート後、ターミナルのプロンプトから(base)を削除する方法
-
[解決済み] bash file returns unexpected token `$'dottpr''
-
[解決済み] AWS CLIのプロファイルを一時的に切り替えるには?
-
[解決済み] Grep 'binary file matches'. どうすれば正常なgrepの出力が得られるか?[重複]する
-
[解決済み] 環境変数を表示/エコーするには?