引数で指定したファイルを操作するときに、ワイルドカードも考慮してプログラムを組みたいなと思ったので調べてみました。上での動作実験を行っています。ワイルドカードそもそもワイルドカードと言うのは、コマンドラインから実行する際に、ファイル名を一括して指定することが出来るようにするためのものです。いったファイルが該当します。いったファイルが該当します。いう機能が用意されていました。して取得できるというものです。これを用いることでいとも簡単に、ファイルリストを取得することが出来ました。記述する場合たとえば、次のように使用します。変数に取得することが出来ます。中に含める文字列は引用符でくくる必要はありません。逆にくくってしまうと、リストが取得できずに終わってしまうようなので気をつけましょう。実際には、さらにパス情報も含めて使用することが多いと思います。</usr/local/etc/file*.txt>;このようにファイルリストを取得した場合には、パス情報もしっかりとリストの中に含まれます。上記では絶対パスですけど、相対パスの場合もそのまま相対表記で現れてくるようでした。逆にパスを含めない場合は、パス情報なしで反映されてくるようです。内では変数も使用することが出来ます。変数を用いることでプログラムをより状況にあったものにすることが出来るのですけど、この場合には気をつけなくてはいけないことがいくつかありました。変数を含めた場合の使い方を挙げてみます。該当するファイル名を取得することが出来ます。引用符でくくってしまうとリストが取得できないようなので注意です。内で指定することは出来ないようです。中に変数だけを記述してしまうと、リストの取得は出来ませんでした。関数を用いた方が簡単かもしれないです。関数ですので、引数は文字列型で渡します。関数を使用した方が直感的ですし、正常動作も期待しやすくて良さそうな感じがしました。関数にてワイルドカードを解決してもらった場合、結果は次のような感じになります。渡された文字列にワイルドカードが使用されていた場合、該当するファイルが存在していた場合には、それらが配列として一度に全部返されます。該当するファイルが存在しなかった場合には、値の何も保存されていない配列が返されます。渡された文字列にワイルドカードが含まれて居ない場合には、そのファイルがあるかどうかに関わらず、配列にその指定された文字列が格納されて返されるようです。関数を用いて変数からワイルドカードを解決する場合、注意すべきことがあるようです。それは、この機能の性質上、任意のプログラムを実行される可能性があるということでした。ワイルドカードの解決には、シェルと呼ばれるコマンドラインで命令を実行するための機構が利用されるため、続けて違う命令を連結されてしまうと、それを実行してしまうのだそうです。区切って、続けて実行したい命令を置けばいいようなのですけど...。実際に試してみましたけど、特に動作する気配はありませんでした。含まれていないかを調べるなど、念のため注意してプログラムを組むのが良さそうです。これを元にワイルドカードの補完を行う場合にも、少し気をつけておいたほうが良さそうなことがありました。格納された時点で、既にワイルドカードの解決が行われてしまうようです。あっても、それにワイルドカードが含まれていて、かつ、該当するファイルが存在すると、その数だけ引数が指定されたこととなるようでした。該当がない場合には、ワイルドカードが置き換えられないまま、引数として渡されます。引数から、ワイルドカードを保ったままプログラムへ値を渡したい場合には、引数を引用符でくくってあげる必要があるようです。することでそのまま文字列として渡されますので、ワイルドカードの処理をプログラム内で行うことが可能となります。多く容量がもらえます。多く容量がもらえます。