Unix 将文件一次存储在变量中

Unix 将文件一次存储在变量中

如何同时将多个文件存储在变量 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.bizmaximum.bizmilan.bizritz.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

相关内容