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 回答