• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:"${0%/*}"の内容について)

${0%/*}の意味とシェルスクリプトの実行結果の違い

このQ&Aのポイント
  • Linuxでシェルスクリプトを作成中に出てきた"${0%/*}"の意味について調査します。
  • シェルスクリプトの内容と実行結果を確認した結果、"${0%/*}"の実行結果が異なることがわかりました。
  • この記事では"${0%/*}"の意味と実行結果の違いについて詳しく解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

man bash より。 ${parameter%word} ${parameter%%word} パターンに後方一致した部分を取り除く。 word が展開され、パス名展開の場合と同じようなパターンを作ります。 このパターンが parameter を展開した値の末尾の部分とマッチする場合、展開結果は parameter を展開した値から最短一致パターン (``%'' の場合) または最長一致パターン (``%%'' の場合) を取り除いたものになります。 parameter が @ または * である場合、 パターンを削除する操作は全ての位置パラメータに順番に適用され、 展開結果はリストとして得られます。 parameter が @ または * が添字になっている配列変数である場合、 パターンを削除する操作は配列の全ての要素に順番に適用され、 展開結果はリストとして得られます。 「/ があればそれとそれ以降の文字を削除する」 という意味です。 /が複数ある場合は最後の / 以降を削除。

kureakai
質問者

お礼

man bashに内容が記述されていることを確認できました。 >「/ があればそれとそれ以降の文字を削除する」 という意味です。 そういうことだったのですが。見るところまで教えて頂きありがとうございました。

その他の回答 (2)

回答No.2

$0を%/*で処理した結果を表示してるのでは? echo $0

kureakai
質問者

お礼

>$0を%/*で処理した結果を表示してるのでは? 情報ありがとうございます。 頂いた情報を元に調べてみます。 ありがとうございました。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

マニュアルは読んだ?

kureakai
質問者

お礼

すみません。 こういう時は、どういったコマンドのマニュアルを読むべきだったのでしょうか? 所からわかってなかったのです。

関連するQ&A