bashスクリプトの${0%/*}の意味は何ですか?
2023-09-18 15:54:16
質問
私は、以下のセグメントを含むテストスクリプトを理解しようとしています。
SCRIPT_PATH=${0%/*}
if [ "$0" != "$SCRIPT_PATH" ] && [ "$SCRIPT_PATH" != "" ]; then
cd $SCRIPT_PATH
fi
は何を意味しているのでしょうか?
${0%/*}
は何を表しているのでしょうか?ありがとうございます。
どのように解決するのですか?
これは
Parameter Expansion
. を見てみましょう。
このページ
と他のサイトを見てください。
何
${0%/*}
の中にある値を展開します。
引数 0
(これはスクリプトを呼び出したパスです) に含まれる値を展開し、文字列
/*
という文字列を取り除いたものです。
では
$0
は
${0}
というのは、他の引数と同じで、例えば
$1
と書くことができます。
${1}
. ということで
$0
は特別なものです。
リアル
引数ではなく、常にそこにあり、スクリプトの名前を表しています。パラメータ展開は
{
}
-- 中括弧、および
%
はParameter Expansionの一種です。
%/*
は、最後に現れる
/
にマッチし、何かを削除します (
*
は何でも意味します)を削除します。この簡単な例を見てみましょう。
$ var="foo/bar/baz"
$ echo "$var"
foo/bar/baz
$ echo "${var}"
foo/bar/baz
$ echo "${var%/*}"
foo/bar
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bash prints リテラルの改行をエコーする \n
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] ディレクトリが存在しない場合のみmkdirする方法は?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashで現在の作業ディレクトリをスクリプトのディレクトリに設定するにはどうすればよいですか?
-
[解決済み] bashのループリストで空白をエスケープするには?
-
[解決済み] Bashで引用符で囲まれた文字列の中で環境変数を使用する方法
-
[解決済み] シェルスクリプトで文字列が空でもスペースでもないことをチェックする
-
[解決済み] シェルスクリプトによるDockerコンテナ内でのスクリプトの実行
-
[解決済み] シェルスクリプトで行末にセミコロンは不要?重複
-
[解決済み] シェルスクリプトからウェブブラウザを起動する方法は?
-
[解決済み] Bashのファイル拡張子は何ですか?
-
[解決済み] 引用符で囲まれたパラメータを受け取り、再送するためのBashスクリプト