if

基本语法

if [ 条件判断式 ];then

程序

fi

或者

if [ 条件判断式 ]

then

​ 程序

elif [ 条件判断式 ]

​ then

​ 程序

else

​ 程序

fi

注意事项:

(1)[ 条件判断式 ],中括号和条件判断式之间必须有空格

(2)if后要有空格

案例

#!/bin/bash
          
if [ $1 -eq "1" ]
then      
        echo "zzz"
elif [ $1 -eq "2" ] 
then  
        echo "qqq"
fi    

case

基本语法

case $变量名 in

“值1”)

​ 如果变量的值等于值1,则执行程序1

​ ;;

“值2”)

​ 如果变量的值等于值2,则执行程序2

​ ;;

…省略其他分支…

*)

​ 如果变量的值都不是以上的值,则执行此程序

​ ;;

esac

注意事项:

  1. case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。

  2. 双分号“;;”表示命令序列结束,相当于java中的break。

  3. 最后的“*)”表示默认模式,相当于java中的default。

案例

#!/bin/bash
          
case $1 in 
1)        
 echo "111"
;;      
2)
echo "222"   
;;    
*)
echo "no thing"
;;  
esac

for

基本语法

for (( 初始值;循环控制条件;变量变化 ))

do

​ 程序

done

for 变量 in 值1 值2 值3…

do

​ 程序

done

案例

从1加到100

#!/bin/bash        
s=0      
for ((i=0;i<=100;i++))
do       
        s=$[$s + $i]
done
echo $s    

比较 ∗ 和 *和 @区别

∗ 和 *和 @都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以$1 2 … 2 … 2n的形式输出所有参数。*

当它们被双引号“”包含时,“$”会将所有的参数作为一个整体,以“$1 2 … 2 … 2n”的形式输出所有参数;“$@”会将各个参数分开,以“$1” “ 2 ” … ” 2”…” 2n”的形式输出所有参数。

未使用双引号
#!/bin/bash
          
for i in $*
do        
        echo " *的输出为 $i"
done    

for j in $@  
do    
        echo " @的输出为 $j"
done
结果

*的输出为 11
*的输出为 22
*的输出为 33
@的输出为 11
@的输出为 22
@的输出为 33

使用双引号
#!/bin/bash
          
for i in "$*" 
do        
        echo " *的输出为 $i"
done    

for j in "$@"
do    
        echo " @的输出为 $j"
done

结果

*的输出为 11 22 33
@的输出为 11
@的输出为 22
@的输出为 33

while

基本语法

while [ 条件判断式 ]

do

​ 程序

done

案例

1 加到100

#!/bin/bash
          
s=0      
i=1       
         
while [ $i -le 100 ]
do 
        s=$[$s+$i]
        i=$[$i+1]
done

echo $s