实验五 shell脚本编程

实验五 shell脚本编程

项目内容
这个作业属于哪个课程 https://edu.cnblogs.com/campus/nchu/2020SpringSystemAndApplication
这个作业的要求在哪里 https://edu.cnblogs.com/campus/nchu/2020SpringSystemAndApplication/homework/10617
学号-姓名 17043124 肖明
作业学习目标 1.了解shell脚本的概念及使用。 2.掌握shell脚本语言的基本语法 。3.学习简单的shell脚本编程

实验内容

首先查看本机的shell环境及设置shell为bash,ubuntu默认是dash,我们需要修改为bash。

sudo dpkg-reconfigure dash

在用户主目录下新建一个文件夹exp5并进入,新建文件text.sh(sh代表shell)。

  1. 让用户输入一个字符串,如果用户输入的是hello,请输入hello 用户姓名首字母缩写,否则输出请输入hello

    #!/bin/bash

    read -p '请输入一个字符串:' str #读取输入字符串

    if [ $str = "hello" ] #如果输入hello

    then

    echo "hello xm" #那么输出hello

    else

    echo "请输入hello" #否则输出请输入hello

    fi

                                                                       

  2. 编写一脚本,判断输入用户名是否存在,输出结果只能是存在该用户或者不存在该用户,不能有其他数据输出。

    #!/bin/bash

    read -p '请输入用户名:' user_name #读取输入用户名

    id $user_name &> /dev/null #查询用户是否存在并讲结果送到/dev/null

    if [ $? -eq 0 ]

    then echo "存在用户$user_name" #如果存在,输出存在用户

    else echo "不存在用户$user_name" #否则输出不存在用户

    fi

                                                                       

  3. 编写脚本计算1-100之间的所有奇数和。

    #!/bin/bash

    SUM=0

    for i in {1..100..2} #i从1到100,每次加2

    do

    let SUM=$SUM+$i #和存入sum

    done

    echo "1-100之间的所有奇数和为: $SUM" #输出

                                                                         

  4. 编写脚本,判断键盘输入整数是否为质数。

    #!/bin/bash

    read -p '请输入一个正整数:' num #请输入一个正整数num

    [ $num -eq 1 ] && echo '$num是质数'&&exit #num=1,输出num为质数,并退出

    [ $num -eq 2 ] && echo '$num是质数'&&exit #num=2,输出num为质数,并退出

    for i in seq 2 $[$num-1] #i取2~(num-1)

    do

    [ $[$num%i] -eq 0 ] && echo "$num不是质数"&&exit #num%i如果不为0,则num不为质数并退出

    done

    echo "$num是质数"&&exit #否则num为质数并退出

                                                                           

  5. 模拟一个多任务维护界面,当执行程序时先显示总菜单,然后进行选择后做相应的维护监控操作

                                                                                                                                                                                                                                                                                                                                                          

  6. 编写脚本实现计算用户输入参数数字的和,分别用shiftfor循环实现。

    #!/bin/bash

    SUM=0 #sum求和

    while [ $# -ne 0 ] #循环

    do

    let SUM=$SUM+$1 #累加

    shift #左移一位

    done

    echo SUM=$SUM #输出

                                                                       

    #!/bin/bash

    SUM=0 #sum求和

    for i #循环

    do

    let SUM=SUM+$i #累加

    done

    echo SUM=$SUM #输出

                                                                         

  7. 编写脚本,生成一个phonenumber.txt文件,文件内容为随机产生以139开头的手机号1000个,每个手机号占一行。

    #!/bin/bash

    file=./phonenumber.txt #文件地址赋予file

    for ((i=1;i<=1000;i++)) #1000个号码

    do

    n1=$[ $RANDOM%10]

    n2=$[ $RANDOM%10]

    n3=$[ $RANDOM%10]

    n4=$[ $RANDOM%10]

    n5=$[ $RANDOM%10]

    n6=$[ $RANDOM%10]

    n7=$[ $RANDOM%10]

    n8=$[ $RANDOM%10]

    echo "139$n1$n2$n3$n4$n5$n6$n7$n8" >> $file #1000个号码存于file

    done

                                                                        

  8. 在第7题产生的1000个电话号码中抽取5位幸运号码,并显示,要求只显示前3三位数字和后4位数字,中间四位用*代替。

    #!/bin/bash

    phone=./phonenumber.txt #文件地址赋予file

    for ((i=1;i<=5;i++)) #五位幸运号码

    do

    line=wc -l $phone | cut -d' ' -f1 #查看行数

    luck_line=$[RANDOM%$line+1] #产生幸运号码

    luck_number=head -$luck_line $phone | tail -1 #取出幸运号码

    echo "139${luck_number:7:4}" #隐藏号码第四到第七位数字

    echo $luck_number >> luck.txt #将幸运号码存入文件luck.text

    sed -i "/$luck_number/d" $phone #删除原幸运号码

    done

                                                                        

  9. 使用until语句批量创建10个用户,要求stu1-stu5用户的UID分别为2001-2005stu6-stu10用户的家目录分别在/rhome/stu6-/rhome/stu10

     

    注意这里创建用户要在 root 用户权限下执行脚本,我们可以用 su ( CentOS )或者 sudo su ( Ubuntu ),注意不要加 - ,我们还是在当前目录操作。

                                                                         

  10. 编写脚本收集用户输入的基本信息(姓名,性别,年龄),如果用户不输入一直提示用户输入,最后根据用户输入的信息输出相应的内容。

                                                                    

 

posted @ 2020-04-15 17:45  啾啾啾揪  阅读(238)  评论(0)    收藏  举报