1 判断
1.1 if/elif/else的使用
语法结构
if expression1; then
command1
elif expression2; then
command2
elif expression3; then
command3
...
fi
例子
#!/bin/bash
echo -n "Please input a score:"
read SCORE
if [ "$SCORE" -lt 60 ]; then
echo "C"
elif [ "$SCORE" -lt 80 -a "$SCORE" -ge 60]; then
echo "B"
else
echo "A"
fi
2 for循环
2.1 带列表的for循环
语法结构:
for VAR in (list)
do
command
done
例子:
#!/bin/bash
fruits="apple orange banana"
for FRUIT in ${fruits}
do
echo "$FRUIT is John's favorite"
done
#!/bin/bash
sum=0
for VAR in `seq 1 100`
do
let "sum+=VAR"
done
echo "Total: $sum"
运行结果:
Total: 5050
2.2 不带列表的for循环
for VARIABLE
do
command
done
例子:一个 list.sh
for VARIABLE
do
echo -n "$VARIABLE "
done
运行时向脚本传递参数:bash list.sh 1 2 3
结果:1 2 3
可以利用$@改写上述结构:
#!/bin/bash
for VARIABLE in $@
do
echo -n $VARIABLE
done
2.3 类c的for循环
for ((expr1; expr2; expr3))
do
command
done
例子:
#!/bin/bash
for ((i=1; i<10; i++))
do
echo -n "$i "
done
3 while循环
3.1 语法
while expr
do
command
done
例子:
#!/bin/sh
COUNTER=5
while [[ $COUNTER -gt 0 ]]
do
echo -n "$COUNTER"
let "COUNTER-=1"
done
4 嵌套循环
#!/bin/bash
for ((i=1; i<=9; i++))
do
for ((j=1; j<=9; j++))
do
let "multi=$i*$j"
echo -n "$i*$j=$multi "
done
echo
done
i=1
while [[ "$i" -le "9"]]
do
j=1
while [[ "$j" -le "9" ]]
do
let "multi=$i*$j"
echo -n "$i*$j=$multi "
let "j+=1"
done
echo
let "i+=1"
done