シェルスクリプトで、自身のファイルパスを取得する方法を検索したところ、下記ページへとたどり着きました。
▼おしえて!HOME'Sくん シェルスクリプト 自身のファイルパスを取得する方法
http://oshiete.homes.jp/qa2419248.html
▼教えて?Coneco shシェルで実行パスではなくファイルのパスを取得する方法
http://oshiete.coneco.net/qa2866868.html
しかし、それぞれのページに掲載されていた
${0%/*}
や
${1%/*}
の意味がどうしてもわかりません。(一応、bashとかで検索してみたりはしました)
そこで、下記内容について、教えてください!
・この0というのは、$0のことなのでしょうか。
・この%は、正規表現か何かなのでしょうか。
・この/は何を指しているのでしょうか?
・この*は、どの部分の1文字以上を指しているのでしょうか?
以上、よろしくお願いしますッ!
No.1ベストアンサー
- 回答日時:
man bashに書いてあります。
>この0というのは、$0のことなのでしょうか。
$0は${0}の簡略表現で、${0%/*}などはそれに修飾子を付けたものです。
>この%は、正規表現か何かなのでしょうか。
正規表現ではありません。man bashより抜粋:
> ${parameter%word}
> ${parameter%%word}
>word が展開され、パス名展開の場合と同じようなパターンを作ります。
>このパターンが parameter を展開した値の末尾の部分とマッチする場合、
>展開結果は parameter を展開した値から最短一致パターン (``%'' の場合)
>または最長一致パターン (``%%'' の場合) を取り除いたものになります。
>この/は何を指しているのでしょうか?
>この*は、どの部分の1文字以上を指しているのでしょうか?
「/*」は、スラッシュの後に任意の文字が0文字以上を表します。正規表現で書くと「/.*」です。
「パス名展開の場合と同じような」と書いてありますが、パス名展開の時 * は、パス区切りの / や ファイル名先頭の . にマッチしませんが、ここでは任意の文字列にマッチします。うーむ、この違いはman bashに書いてないかも。
man bashの説明と合わせると、${0} の内容の末尾から「/*」のファイルマッチが合致する最短パターンを取り除いたものになります。
${0}==/aaaa/bbbb/cccc だとすると、「/*」は、/aaaa/bbbb/cccc と /bbbb/cccc と /cccc に合致しますがその中の最短である /cccc が選択され、それが${0}から除去された物が最終的な結果です。つまり、/aaaa/bbbb
ご回答ありがとうございます!
事前に4時間ぐらいかけて検索しても分からなかったことなのに、
これだけ詳細にご説明していただけたおかげで、
完全に理解することができました。
お礼が遅くなりましたが、
本当にありがとうございましたッ!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Web初心者です。 簡易的なWebペ...
-
vba クリップボードクリアにつ...
-
python エラー
-
Google ColaboでGUI作成
-
python3について。
-
AIの登場でプログラマーたちが...
-
プログラマーと学歴の関係性に...
-
以下の技能を無料で受講できる...
-
プログラマーは誘惑にさらされ...
-
HTMLソースが表示のページのも...
-
pythonでのカーソル移動がずれる
-
プログラミング言語について
-
matplotlibでのLaTex表示
-
初心者powershellのPS1ファイル...
-
プログラマーに向いている人の...
-
このURLで広告を出しているのは...
-
pythonの画像の貼り付けについて
-
プログラミングの雑談がしたい...
-
python の 連鎖代入の文法
-
Lazarus(IDE2.2.6)をインスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
Pythonでの文字列からfloatへの...
-
プログラミング言語について
-
matplotlibでのLaTex表示
-
Google ColaboでGUI作成
-
HLMT、CSSについて相談です。 ...
-
近年誕生したプログラミング言語
-
長門有希のようにコンピュータ...
-
hostファイル
-
プログラマーに向いている人の...
-
Win11で作業を自動化したいです...
-
Pythonを使ってせん断応力図、...
-
・オブジェクト指向のメリット...
-
ホログラムを作ってくれる会社...
-
このURLで広告を出しているのは...
-
エディターで以下のような色に...
-
google Colabでmatplotlibの描...
-
プログラマーは誘惑にさらされ...
-
VBAでパワーシェルを実行したい...
-
特定の項目セルにスキャン(入...
おすすめ情報