- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:"${0%/*}"の内容について)
${0%/*}の意味とシェルスクリプトの実行結果の違い
このQ&Aのポイント
- Linuxでシェルスクリプトを作成中に出てきた"${0%/*}"の意味について調査します。
- シェルスクリプトの内容と実行結果を確認した結果、"${0%/*}"の実行結果が異なることがわかりました。
- この記事では"${0%/*}"の意味と実行結果の違いについて詳しく解説します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
man bash より。 ${parameter%word} ${parameter%%word} パターンに後方一致した部分を取り除く。 word が展開され、パス名展開の場合と同じようなパターンを作ります。 このパターンが parameter を展開した値の末尾の部分とマッチする場合、展開結果は parameter を展開した値から最短一致パターン (``%'' の場合) または最長一致パターン (``%%'' の場合) を取り除いたものになります。 parameter が @ または * である場合、 パターンを削除する操作は全ての位置パラメータに順番に適用され、 展開結果はリストとして得られます。 parameter が @ または * が添字になっている配列変数である場合、 パターンを削除する操作は配列の全ての要素に順番に適用され、 展開結果はリストとして得られます。 「/ があればそれとそれ以降の文字を削除する」 という意味です。 /が複数ある場合は最後の / 以降を削除。
その他の回答 (2)
- pixie-grasper
- ベストアンサー率49% (28/57)
回答No.2
$0を%/*で処理した結果を表示してるのでは? echo $0
質問者
お礼
>$0を%/*で処理した結果を表示してるのでは? 情報ありがとうございます。 頂いた情報を元に調べてみます。 ありがとうございました。
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
マニュアルは読んだ?
質問者
お礼
すみません。 こういう時は、どういったコマンドのマニュアルを読むべきだったのでしょうか? 所からわかってなかったのです。
お礼
man bashに内容が記述されていることを確認できました。 >「/ があればそれとそれ以降の文字を削除する」 という意味です。 そういうことだったのですが。見るところまで教えて頂きありがとうございました。