一、实验要求

shell编程实验要求

1、要求有变量

2、要求有循环、判断if-else

3、要求一个简单的函数

4、变量运算

5、详细注释

二、实验内容

Shell 脚本本质就是一个文本文件,使用vim编辑器进行脚本编写。

vim 文件名.sh    //编写文件脚本;

cat 文件名.sh    //查看编写的文件脚本;

chmod +x  ./文件名.sh      //设置脚本文件的权限来允许其可执行;

./文件名.sh    //执行脚本;

例1  while语句的应用:猜随机数大小。

#对100取余运算生成一个100以内的随机数
# RANDOM 为系统自带的系统变量,值为 0-32767的随机数
num=$[RANDOM%100+1]
echo "$num"
# 使用 read 提示用户猜数字
# 使用 if 判断用户猜数字的大小关系:-eq(等于),-ne(不等于),-gt(大于),-ge(大于等于),
# -lt(小于),-le(小于等于)
while :
do
    read -p "计算机生成了一个 1-100 的随机数,你猜: " guess
    if [ $guess -eq $num ]
    then
        echo "恭喜,猜对了"
        exit
    elif [ $guess -gt $num ]
    then
        echo "猜大了"
    else
        echo "猜小了"
    fi
done

执行结果如下:

例2  for语句的应用:求sum=1+2+……100。

sum=0
for i in `seq 100`
do
    sum=$[sum+i]
done
echo "总和是:$sum"

执行结果如下:

例3  if-else语句的应用:给三个数排序。

# 依次提示用户输入 3 个整数,脚本根据数字大小依次排序输出 3 个数字
read -p "请输入第一个整数:" num1
read -p "请输入第二个整数:" num2
read -p "请输入第三个整数:" num3
tmp=0
# 如果 num1 大于 num2,就把 num1 和和 num2 的值对调,确保 num1 变量中存的是最小值
if [ $num1 -gt $num2 ];then
    tmp=$num1
    num1=$num2
    num2=$tmp
fi
# 如果 num1 大于 num3,就把 num1 和 num3 对调,确保 num1 变量中存的是最小值
if [ $num1 -gt $num3 ];then
    tmp=$num1
    num1=$num3
    num3=$tmp
fi
# 如果 num2 大于 num3,就把 num2 和 num3 对调,确保 num2 变量中存的是小一点的值
if [ $num2 -gt $num3 ];then
    tmp=$num2
    num2=$num3
    num3=$tmp
fi
echo "排序后数据(从小到大)为:$num1,$num2,$num3"

执行结果如下:

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐