有几篇关于迭代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"
}
如何传递正则表达式参数并迭代它?
注意:计算文件只是一个例子。如果您有一个简单的方法,请分享,但这不是主要问题。
答案 0 :(得分:1)
在count_files.sh
内部脚本中,请确保使用以下引号调用函数:
count_files "$1"
而不是:
count_files $1
稍后会得到count = 1,因为在函数调用第一个文件名之前会扩展通配符。