shell中循环的一般写法如下
fori
shell for 循环默认是按照空格进行分隔的
for (( i = 0; i < n; i++ )); do
:
done
for in
for i in a b c ; do
...
done
变量
但是如果我们需要循环的数据在某个变量里面,例如 list=“a b c”,此时我们是写成 for i in ${list}
呢?还是写成 for i in "${list}"
呢。主要是有引号和没有引号的区别。虽然推荐读取变量的时候要求尽量用引号包裹,但这里如果用引号包裹了结果就会是错误的。
结论是我们不能在使用引号了,如果使用引号,那么就会把 ${list} 当成一个整体进行处理了
for i in a b c ; do
...
done
数组
fruits=("apple" "banana" "orange")
for fruit in "${fruits[@]}"
do
echo "I like $fruit"
done
数字
for i in {1..5}
do
echo "Number: $i"
done
until
count=0
until [ $count -eq 5 ]
do
echo "Count: $count"
count=$((count + 1))
done
while
while []
count=0
while [ $count -lt 5 ]
do
echo "Count: $count"
count=$((count + 1))
done
逐行读文件
while IFS= read -r line
do
echo "Line: $line"
done < file.txt
逐行读变量
echo "${result}"|while read line;do
echo "Line: $line"
done
这种写法有坑,参考