shell 脚本中while循环和for循环的区别
程序员文章站
2024-03-23 21:48:40
...
网上介绍基本用法的已经很多了,这里记录一下两者的区别。
while不能给循环体以外的变量赋值
for 可以
原因大概是 while会起一个子shell,所有变量只在子 shell里面进行,而for,看起来并不会。
因为是日常记录,就简单写一下。
i=0
array=[]
git diff --name-only | while read line
do
echo $line
array[$i]=$line
echo ${array[$i]}
let i++
done
j=0
folder_list=[]
for i in `git diff --name-only`
do
folder_list[j]=$i
j=`expr $j + 1`
done
i=0
while [ $i -lt ${#array[@]} ]
do
echo "i=${i}"
echo ${array[$i]}
let i++
done
i=0
while [ $i -lt ${#folder_list[@]} ]
do
echo "i=${i}"
echo ${folder_list[$i]}
let i++
done
回显是这样的:
tools/build/flexinc-package
tools/build/flexinc-package
tools/dev/bin/flexinc-setup
tools/dev/bin/flexinc-setup.
这是 while循环的
i=0
[]
这是for循环的
i=0
tools/build/flexinc-package
i=1
tools/dev/bin/flexinc-setup
[email protected]:/opt/code#
上一篇: 同步java之关键字