シェルスクリプトマガジン

第3回 写真を整理する

 6行目と7行目では、変数「bl_photo_name」と変数「sl_photo_name」に写真データのファイル名を格納しています。「ls ${photo_directory}/.JPG 2>/dev/null」および「ls ${photo_directory}/.jpg 2>/dev/null」を実行させるために、第1回で説明した、「$(」「)」で囲む「コマンド置換」を用いています。
 ファイルやディレクトリの一覧を表示する「ls」コマンドに「.JPG」または「.jpg」を指定してJPG形式のファイルだけを対象にしています。「」は「ワイルドカード」と呼ばれ、lsコマンドでは任意の文字列が該当します。「2>/dev/null」は、標準エラー出力を表示させないための指定です。これを指定しないと、例えば、大文字の「.JPG」拡張子のファイルがなかったりしたら「ls: cannot access ‘画像/.JPG’: No such file or directory」のようなエラーが画面に表示されてしまいます。大文字、小文字のどちらかの拡張子のファイルが存在しなくてもシェルスクリプトの処理自体は正しいので、このような方法でエラーを出力させないことはよくあります。

 8行目の「name_check=”1″」は、ファイル名の重複を判定するための変数「name_check」に初期値「1」を代入しています。10行目の「clear」は、画面をスクロールしてきれいするコマンドです。画面表示を利用するシェルスクリプトなら画面をきれいにしておくことはお勧めです。