Appearance
if
单分支
shell
if [ condition ];then
# do something...
fi或
shell
if [ condition ]
then
# do something...
fi实际使用时,如果不传参数会报错,为了避免这种报错,左右两边用双引号括起来,并加上 x。
shell
if [ "$1"x = "foo"x ]
then
echo "right"
fi[] 内出现多个条件时要使用 -a、-o 代替 &&、||
shell
if [ $1 -gt 18 -a $1 -lt 35 ]
then
echo "right"
fi多分支
shell
if [ condition ]
then
# do something...
elif [ condition ]
then
# do something...
else
# do something...
ficase
基本语法
shell
case $变量名 in
值1)
# do something...
;;
值2)
# do something...
;;
*)
# do something...
;;
esaccase 行尾必须为 in,每一个模式匹配必须以 ) 结束
;; 表示命令序列结束,相当于其它语言中的 break。
*) 表示默认模式,相当于其它语言中的 default。
for
基本语法
sh
for (( i = 0; i < 10; i++ ))
do
# do something...
donesh
for (( i = 1; i <= $1; i++ ))
do
sum=$[ $sum + $i ]
done
echo $sumsh
for i in Linux Windows MacOS
do
# do something...
done$* 和 $@ 的区别
sh
echo '====$*===='
for param in $*
do
echo $param
done
echo '====$*===='
for param in $@
do
echo $param
done====$==== a b c ====$==== a b c
sh
echo '====$*===='
for param in "$*"
do
echo $param
done
echo '====$*===='
for param in "$@"
do
echo $param
done====$==== a b c ====$==== a b c
while
基本语法
sh
while [ condition ]
do
# do something...
donesh
i=1
while [ $i -le $1 ]
do
# sum=$[ $sum + $i ]
# i=$[ $i + 1 ]
# 更人性化的写法
let sum+=i
let i++
done
echo $sum