如何同时将多个文件存储在变量 1 中。
for f in *.biz
do
file="$(ls *.biz)"
echo " $file"
done
但这是输出
minimum.biz
maximum.biz
milan.biz
ritz.biz <-------------1
minimum.biz
maximum.biz
milan.biz
ritz.biz <-------------2
minimum.biz
maximum.biz
milan.biz
ritz.biz <------------3
minimum.biz
maximum.biz
milan.biz
ritz.biz <------------4
正如您所看到的,程序一次性存储了所有这些,并且毫无理由地程序又迭代了 3 次。
有什么想法吗?提前致谢
答案1
您有四个.biz
文件。因此for f in *.biz; do ... done
将形成一个迭代四次的循环。 分别在第 1 次迭代、第 2 次迭代、第 3 次迭代和第 4 次迭代中$f
分配值。minimum.biz
maximum.biz
milan.biz
ritz.biz
在循环内部,即
file="$(ls *.biz)"
echo " $file"
$file 被分配了四个文件名,并且该echo
语句打印所有四个.biz
文件名。
请尝试一下,你就会了解更多:
for f in *.biz
do
echo "-- Inside loop $f --"
file="$(ls *.biz)"
echo " $file"
done
更新: 根据您的评论,我假设您只是想遍历文件,并且下面修改后的代码应该可以工作:
for f in *.biz
do
echo " $f"
done