[ B シェル ] 繰り返し処理 ( for / while )

Pocket

ここでは、B シェルで for 文と while 文による繰り返し処理のサンプルスクリプトを掲載しています。

スポンサーリンク


繰り返し処理サンプル

ディレクトリ内のファイルの一覧を取得して、ディレクトリは除外しファイルのみコピーするスクリプトになります。-f によってファイルであるかどうかを判定している部分もポイントです。

#!/bin/sh

# コピー元ディレクトリ
src_dir=/path/to/src/

# コピー先ディレクトリ
dst_dir=/path/to/dst/

# コピー元ディレクトリの一覧を取得してループ
ls $src_dir | while read filename; do

    # ファイルのみコピーする(ディレクトリは対象外)
    if [ -f $src_dir$filename ] ; then
        # 実際のコピー処理
        cp $src_dir$filename $dst_dir$filename
    else
        echo 'not copy target:'$filename
    fi

done

# または、以下のように for 文を使用することもできる

# コピー元ディレクトリの一覧を取得してループ
for filename in `ls $src_dir`; do

    if [ -f $src_dir$filename ] ; then
        # 実際のコピー処理
        cp $src_dir$filename $dst_dir$filename
    else
        echo 'not copy target:'$filename
    fi

done

人生は良いことと悪いことの繰り返し。死ぬときはトントンだそうです。

 

スポンサーリンク

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>