1

次のような bash ファイルの反復処理に関する投稿がいくつかあります。

count_files() {
    count=0

    for f in "filename_*.txt"
    do
        count=$(($count + 1))
    done
    echo "Current count:$count"
}

bash スクリプトを呼び出すときに、「filename_*.txt」をパラメーターとして渡す必要があります。このような:

$: count_files.sh "filename_*.txt"

$: count_files.sh "different_filename_*.txt"

ただし、これは最初のファイルのみを取得します。

count_files() {
    count=0

    for f in $1
    do
        count=$(($count + 1))
    done
    echo "Current count:$count"
}

正規表現パラメータを渡して反復するにはどうすればよいですか?

注: ファイルのカウントは単なる例です。それを行う簡単な方法がある場合は、共有してください。ただし、それは主な質問ではありません。

4

1 に答える 1

1

スクリプト内count_files.shで、次のように引用符を付けて関数を呼び出すようにしてください。

count_files "$1"

それ以外の:

count_files $1

最初のファイル名への関数呼び出しの前にワイルドカードが展開されるため、後で count=1 を取得します。

于 2013-04-12T14:48:10.980 に答える