一、 if 判断
基本语法
if [ 条件判断式 ];then
程序
fi
————————————————————————
if [ 条件判断式 ]
then
程序
fi
————————————————————————
if [ 条件判断式 ]
then
程序
elif [ 条件判断式 ]
then
程序
else
程序
fi
注意事项:
(1)[ 条件判断式 ],中括号和条件判断式之间必须有空格
(2)if 后要有空格,推荐使用第二种方式
应用实例
案例:请编写一个 shell 程序,如果输入的参数,大于等于 60,则输出 “及格了”,如果小于 60,则输出 “不及格”
#!/bin/bash
if [ $1 -ge 60 ]
then
echo "合格了"
elif [ $1 -lt 60 ]
then
echo "不合格"
fi
二、case 语句
基本语法
case $变量名 in
"值 1")
如果变量的值等于值 1,则执行程序 1
;;
"值 2")
如果变量的值等于值 2,则执行程序 2
;;
...省略其他分支...
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
注意事项:
(1)case 行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
(2)双分号“;;”表示命令序列结束,相当于 java 中的 break。
(3)最后的“*)”表示默认模式,相当于 java 中的 default。
应用实例
案例 1 :当命令行参数是 1 时,输出 “周一”, 是 2 时,就输出"周二", 其它情况输出 “other”
#!/bin/bash
case $1 in
"1")
echo "周一"
;;
"2")
echo "周二"
;;
*)
echo "other"
;;
esac
三、for 循环
基本语法 1
for 变量 in 值 1 值 2 值 3...
do
程序
done
应用案例 1:打印命令行输入的参数
#!/bin/bash
for i in y o u
do
echo "I LOVE $i"
done
应用案例 2:打印命令行输入的参数 【会使用到 $* $@,比较 $* 和 $@区别】
$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以 $1 $2 …$n 的形式输出所有参数
[niujifei@njf ~]$ cat for3.sh
#!/bin/bash
echo '=============$*============='
for i in $*
do
echo "the num is $i"
done
echo '=============$@============='
for j in $@
do
echo "the num is $j"
done
[niujifei@njf ~]$ ./for3.sh 1 2 3
=============$*=============
the num is 1
the num is 2
the num is 3
=============$@=============
the num is 1
the num is 2
the num is 3
当它们被双引号“”包含时,$*会将所有的参数作为一个整体,以“$1 2... 2 ... 2...n”的形式输 出所有参数;$@会将各个参数分开,以“$1” “ 2 ” . . . “ 2”...“ 2”...“n”的形式输出所有参数。
[niujifei@njf ~]$ cat for4.sh
#!/bin/bash
echo '=============$*============='
for i in "$*"
#$*中的所有参数看成是一个整体,所以这个 for 循环只会循环一次
do
echo "the num is $i"
done
echo '=============$@============='
for j in "$@"
#$@中的每个参数都看成是独立的,所以“$@”中有几个参数,就会循环几次
do
echo "the num is $j"
done
[niujifei@njf ~]$ ./for4.sh 1 2 3
=============$*=============
the num is 1 2 3
=============$@=============
the num is 1
the num is 2
the num is 3
基本语法 2
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
应用案例:从 1 加到 100 的值输出显示
#!/bin/bash
SUM=0
for ((i=1;i<=100;i++))
do
SUM=$[$SUM+$i]
done
echo "SUM=$SUM"
四、while 循环
基本语法
while [ 条件判断式 ]
do
程序
done
应用案例 1 :从命令行输入一个数 n,统计从 1+…+ n 的值是多少?
#!/bin/bash
SUM=0
i=1
while [ $i -le 100 ]
do
SUM=$[$SUM+$i]
i=$[$i+1]
done
echo $SUM