文章目录
- if
- case
- for
- 基本语法
- 案例
- 比较$*和$@区别
- while
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
注意事项:
- case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
- 双分号“;;”表示命令序列结束,相当于java中的break。
- 最后的“*)”表示默认模式,相当于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 … 2…n的形式输出所有参数。*
当它们被双引号“”包含时,“$”会将所有的参数作为一个整体,以“$1 2 … 2 … 2…n”的形式输出所有参数;“$@”会将各个参数分开,以“$1” “ 2 ” … ” 2”…” 2”…”n”的形式输出所有参数。
未使用双引号
#!/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