これをch_ext_to_txt.shのような名前で保存して実行権限をchmod +xで付与してパスの通ったディレクトリに移動する。実行方法は、ch_ext_to_txt.sh tex とすると、拡張子がtexのファイルの拡張子をtxtに変換する。
で、これの最大の疑問は、${foo%word}です。大体想像はつくけど調べた。manpageを見ると、以下の説明(日本語)がある。
便利ですね。 つまり、parameter で渡した文字列からwordに後方一致した部分を取り除く、ということらしい。だから、${foobar#bar}としたらfooが返される。
- ${parameter%%word}
- パターンに後方一致した部分を取り除く。 word が展開され、パス名展開の場合と同じようなパターンを作ります。 このパターンが parameter を展開した値の末尾の部分とマッチする場合、展開結果は parameter を展開した値から最短一致パターン (``%'' の場合) または最長一致パターン (``%%'' の場合) を取り除いたものになります。 parameter が @ または * である場合、 パターンを削除する操作は全ての位置パラメータに順番に適用され、 展開結果はリストとして得られます。 parameter が @ または * が添字になっている配列変数である場合、 パターンを削除する操作は配列の全ての要素に順番に適用され、 展開結果はリストとして得られます。
シェルスクリプト便利ですね。
0 件のコメント:
コメントを投稿