Shell循环不递增

Shell循环不递增,shell,for-loop,Shell,For Loop,我有一个简单的循环问题。。。我想知道这有什么问题。 基本上,我只想为找到的每个文件增加一个计数器 j=0 files=`ls path |grep "blabla"` for i in $files ; do j=`expr $j + 1` echo "$j ---- $i"; done; 结果: 0 ---- blabla1 0 ---- blabla2 0 ---- blabla3 0 ---- blabla3 为什么我的计数器不递增?缺少分号: do j=`expr $j + 1`

我有一个简单的循环问题。。。我想知道这有什么问题。 基本上,我只想为找到的每个文件增加一个计数器

j=0
files=`ls path |grep "blabla"`
for i in $files ; 
do j=`expr $j + 1` echo "$j ---- $i"; 
done;
结果:

0 ---- blabla1
0 ---- blabla2
0 ---- blabla3
0 ---- blabla3

为什么我的计数器不递增?

缺少分号:

do j=`expr $j + 1`; echo "$j ---- $i"; 
#                 ^-- this is missing from your code
如果没有分号,变量赋值(
j=…
)不会在
echo
之外继续存在