实验目的
进一步巩固shell程序设计语言基本语法,加深对所学知识理解。
实验内容
要求学生掌握以下内容
(1)条件表达式
(2)判断和分支语句
(3)循环语句
(4)函数
实验内容
1 条件表达式
$ test 10 -gt 5 // 算数表达式 10>5
$ echo $? //显示上述表达式的运行结果
$ [ 10 -lt 5 ] //算数表达式 10<5
$ echo $?
注意:和true和false刚好相反
2. 条件和分支语句
使用编辑器vi编辑下列shell脚本
(1)判断输入的用户名是否为当前用户名
#!/bin/bash
echo -n "Enter your login name: "
read name
if [ "$name" = "$USER" ];
then
echo "Hello, $name. How are you today ?"
else
echo "You are not $USER, so who are you ?"
fi
将上述脚本保存至test_uf.sh,运行该脚本
$ bash test_uf.sh zhangs
(2) 判断当前所处的时间
#!/bin/bash
hour= `date +%H`
case $hour in
0[1-9] | 1[01] )
echo "Good morining !!"
;;
1[2-7] )
echo "Good afternoon !!"
;;
* )
echo "Good evening !! "
;;
esac
将上述脚本保存至文件test_case.sh,运行该程序
$ bash test_case.sh //观察运行结果
3. 循环语句
(1)计算最小值
#!/bin/bash
smallest=10000
for i in 12 5 18 58 -3 80
do
if test $i -lt $smallest
then
smallest=$i
fi
done
echo " The smallest number is: $smallest"
将上述脚本保存至 test_for.sh,运行该脚本
$ bash test_for.sh // 观察运行结果
(2)计算1到100之间整数的和
#!/bin/bash
i=1
sum=0
while [ $i -le 100 ]
do
sum=`expr $sum + $i`
i=`expr $i + 1`
done
echo The sum is $sum
将上述脚本保存至文件test_while.sh,运行该脚本
$ bash test_while.sh
注:赋值符号=左右两边不能有多余的空格。
4. 函数
运用函数判断两个数的大小
将上述脚本保存至文件test_fun.sh,运行该脚本
$ bash test_fun.sh 10 36 //观察运行结果
5. 思考题
1. 函数内的$1,$2与函数外的$1,$2有何区别
2. 给出本地变量的作用域