使用 bash 时如何循环

how to loop with while using bash

我的问题是我必须计算文件夹 (Name) 中包含名称 (Stefano) 公共部分的文件的数量,并且对于每个名称,我都想将名称与计数的数量相呼应。 因此文件夹中文件的名称将类似于:

Stefano.A1
Stefano.B2
Stefano.H3 

我遇到的问题是如何回显 files.Because 它给了我错误:

ls Stefano* | wc -l: syntax error in expression (error token is "Stefano* | wc -l")  

这是脚本

i=1

while [ $i -le $(ls Stefano* | wc -l) ]; do
      echo "Stefano*${i}"
      (i++)
done        

在BASH你可以做:

i=1
for f in Stefano*; do
   echo "${f}${i}"
   ((i++))
done

使用 for 循环做一些更简单的事情怎么样。像

for file in Stephano*; do (i++); done

find 为您打印出名字:)

find -name "*Stefano*"

我现在明白你想要什么了...你想让 $i -le $(ls Stefano* | wc -l) 为你的 while 循环工作,所以执行以下操作:

i=1
while [ $i -le $(cd  && ls Stefano* | wc -l) ]
do
    echo "Stefano*${i}"
    ((i++))
done

我添加了 cd 以便您可以从您所在的任何目录执行脚本,而无需实际将您从当前目录移出。