• 締切済み

シェル

シェルを勉強しはじめたばかりのものです。 勉強用のテキストに以下の記述があります。 source ${0%/*}XXXX ${0%/*}の意味がわからなくてこまっています。 これってどのような意味でしょうか。

みんなの回答

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

テキストであれば、それまでの部分に説明が書いてあるかもしくは巻末などのリファレンスを参照することになってると思うのですが。 ${0} はそれが書かれているシェルスクリプトのファイル名です。 ${0%/*} は、${変数名%文字列パターン} という構文で、この場合スクリプトファイル名の末尾を含んで /* (*は任意の文字列) というパターンを削除した残りです。複数ケース考えられる場合は最短の文字列を削除します。 スクリプト名が、/home/abc/bin/xyz であった場合、/* に当てはまる文字列は、「末尾から任意の文字列が並んでその前に/」なので、 /home/abc/bin/xyz /abc/bin/xyz /bin/xyz /xyz の4通り考えられますが、最短の/xyzが当てはまり、それを削除した物が結果です。 結局、source /home/abc/bin/XXXX というコマンドを実行することになります。

eufsm
質問者

お礼

丁寧なご回答ありがとうございます。 よくわかりました。

関連するQ&A