ディレクトリ登録サービス 海外ディレクトリー 約50サイト登録サービス

  レポート7

 

 ifコマンドでは、「もしも~ならば○○をする」といった条件によって、処理を変える仕組みでした。今回紹介する「for」コマンドは、「一定の処理を繰り返す」という仕組みです。この「仕組み」も何かをプログラムしたい場合にはよく使われます。forコマンドの繰り返し作業では、まず変数を指定します。「in」でリストアップする条件を指定し、マッチした内容が変数にセットされます。そして「do」で実際のコマンドが実行されます。inの条件でマッチするものが複数あれば、次の内容がforの新しい変数としてセットされ、またdoで処理されます。リストアップ条件にマッチするものがなくなったら「done」で作業を終了します。 ここでの目的は「拡張子がmp3のファイルをサブディレクトリmp3にコピーする」ということです。最初にforに対する「変数」の名前を決めます。これはユーザーが区別できるものであれば、どのような名前でも構いません。ここでは「FILE」とします。次にinでリストアップする条件ですが、「拡張子がmp3ファイルであること」です。ですからリストアップ条件は「in *.mp3」となります。 doに続くコマンドは、変数FILEの値(拡張子がmp3のファイル)をmp3ディレクトリへコピーするので「cp $FILE mp3/$FILE」となります。「$FILE」というのは、変数「FILE」に入力された値です。このスクリプトが実行されるときには、inでリストアップされた実際のファイル名が入ります。 作業対象のファイル名があらかじめ決まっているのなら別ですが、ここでの目的のように、対象が複数あって随時変化するするような時、あらかじめ任意の変数を作っておきます。そして実行時にその変数に値を入力して作業させるというわけです。 inでリストアップされたmp3ファイルが全部コピーされれば、inのリストアップはなくなり、このスクリプトは終了します。実際にstep4.shとして記述してみると、以下のようになります。

メニュー