项目 内容
这个作业属于哪个课程 班级课程的主页链接
这个作业的要求在哪里 作业要求链接地址
学号—姓名 17043133—木腾飞
作业学习目标 1、了解shell 脚本的概念及应用
2、掌握shell脚本语言的基本语
3、学习简单的shell脚本编程

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

#!/bin/bash
read -p '请输入一个字符串:' str
if [ $str = "hello" ]
then
echo "hello cyb"
else
echo "请输入hello"
f

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

#!/bin/bash 

read -p '请输入用户名:' user_name
id $user_name &> /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}
do
let SUM=$SUM+$i
done echo "1-100之间的所有奇数和为: $SUM"

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

#!/bin/bash

read -p '请输入一个正整数:' num
[ $num -eq 1 ] && echo '$num是质数'&&exit
[ $num -eq 2 ] && echo '$num是质数'&&exit
for i in `seq 2 $[$num-1]`
do
[ $[$num%i] -eq 0 ] && echo "$num不是质数"&&exit
done
echo "$num是质数"&&exit

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

#!/bin/bash
cat <<-EOF
h 显示命令帮助
f 显示磁盘分区
d 显示磁盘挂载
m 查看内存使用
u 查看系统负载
q 退出程序
EOF
while true
do
read -p "请选择需要操作的内容(help h):" action
case $action in
h)
cat <<-EOF
h 显示命令帮助
f 显示磁盘分区
d 显示磁盘挂载
m 查看内存使用
u 查看系统负载
q 退出程序
EOF
;;
f)
lsblk
;;
d)
df -h
;;
m)
free -m
;;
u)
uptime
;;
q)
exit
;;
esac
done

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

#!/bin/bash
SUM=0
for i
do
let SUM=SUM+$i
done
echo SUM=$SUM

#!/bin/bash
SUM=0
while [ $# -ne 0 ]
do
let SUM=$SUM+$1
shift
done
echo SUM=$SUM

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

#!/bin/bash
file=./phonenumber.txt
for ((i=1;i<=1000;i++))
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
done

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

#!/bin/bash
phone=./phonenumber.txt
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
sed -i "/$luck_number/d" $phone
done

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

#!/bin/bash
if [ -d /rhome ]
then
echo "/rhome目录已存在"
else
mkdir /rhome
echo "/rhome不存在,已创建成功"
fi
i=1
until [ $i -gt 5 ]
do
useradd stu$i -u $[2000+$i] && echo "stu$i:123" | chpasswd && echo "stu$i创建成功!"
let i++
done
until [ $i -gt 10 ]
do
useradd stu$i -d /rhome/stu$i && echo "stu$i:123" | chpasswd && echo "stu$i创建成功!"
let i++
done

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

#!/bin/bash
input_fun(){
input_var=""
output_var=$1
while [ -z $input_var ]
do
read -p "$output_var" input_var
done
echo $input_var
} name=`input_fun 请输入你的姓名:`
sex=`input_fun 请输入你的性别:`
age=`input_fun 请输入你的年龄:` echo "你的姓名是$name"
echo "你的性别是$sex"
echo "你的年龄是$age"

实验五:shell脚本编程的更多相关文章

  1. 实验五 shell脚本编程

    项目 内容 这个作业属于哪个课程 课程链接 这个作业的要求在哪里 作业要求 学号-姓名 17041428-朱槐健 作业学习目标 1. 了解shell脚本的概念及使用 2.掌握shell脚本语言的基本语 ...

  2. 实验五shell脚本编程

    项目 内容 这个作业属于哪个课程 <班级课程的主页链接> 这个作业的要求在哪里 作业要求链接地址 学号-姓名 17043220-万文文 作业学习目标 1)了解shell脚本的概念及使用.2 ...

  3. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

  4. SHELL脚本编程的常识和VI常用技巧

    来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...

  5. 浅谈自底向上的Shell脚本编程及效率优化

    作者:沐星晨 出处:http://blog.csdn.net/sosodream/article/details/6276758 浅谈自底向上的Shell脚本编程及效率优化 小论文,大家多批评指导:) ...

  6. SHELL脚本编程-普通数组(列表)和关联数组(字典)

    SHELL脚本编程-普通数组(列表)和关联数组(字典) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组相关概述 变量: 存储单个元素的内存空间 数组: 存储多个元素的连续的 ...

  7. SHELL脚本编程基础知识

    SHELL脚本编程基础知识 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux之父Linus有一句话很经典:"Talk is cheap, show me the ...

  8. SHELL脚本编程的条件测试

    SHELL脚本编程的条件测试 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.条件测试概述 判断某需求是否满足,需要由测试机制来实现 专用的测试表达式需要由测试命令辅助完成测试过 ...

  9. Shell脚本编程30分钟入门

    Shell脚本编程30分钟入门 转载地址: Shell脚本编程30分钟入门 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_t ...

随机推荐

  1. 父级元素绑定定mouseout和mouseover,移过子元素是都会触发

    2019独角兽企业重金招聘Python工程师标准>>> mouseover与mouseenter 不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件. 只有在鼠标 ...

  2. ELK收集日志到mysql数据库

    场景需求 在使用ELK对日志进行收集的时候,如果需要对数据进行存档,可以考虑使用数据库的方式.为了便于查询,可以同时写一份数据到Elasticsearch 中. 环境准备 CentOS7系统: 192 ...

  3. Openstack HA集群5-Keystone HA

    # yum install -y openstack-keystone httpd mod_wsgi # mysql -u root -p -e "CREATE DATABASE keyst ...

  4. [bzoj2088]P3505 [POI2010]TEL-Teleportation

    洛谷 bzoj 用了分层图的思想 题意 给一张图,要求你再尽可能的多连边,使得从1到2至少要经过5条边 没啥复杂的公式,讲解都在注释里 #include<cstdio> #include& ...

  5. 商汤提出解偶检测中分类和定位分支的新方法TSD,COCO 51.2mAP | CVPR 2020

    目前很多研究表明目标检测中的分类分支和定位分支存在较大的偏差,论文从sibling head改造入手,跳出常规的优化方向,提出TSD方法解决混合任务带来的内在冲突,从主干的proposal中学习不同的 ...

  6. tinymce富文本编辑器整合到django

    第一步:定义表存图片路径 models.py class AdminIMG(models.Model):     filename = models.CharField(max_length=200, ...

  7. Java 创建并应用PPT幻灯片母版

    幻灯片母版,可在幻灯片中预先存储设计模板信息,包括字形.占位符大小或位置.背景设计和配色方案等:对设定好的母版可应用于所有幻灯片,也可设计多个不同母版应用于不同幻灯片.下面通过Java代码示例介绍如何 ...

  8. js+css制作简单的轮播图带有定时功能

    用纯css和JavaScript代码制作带有定时轮播功能的轮播图 <!DOCTYPE html> <html> <head> <meta charset=&q ...

  9. 模块(类)之间解耦利器:EventPublishSubscribeUtils 事件发布订阅工具类

    如果熟悉C#语言的小伙伴们一般都会知道委托.事件的好处,只需在某个类中提前定义好公开的委托或事件(委托的特殊表现形式)变量,然后在其它类中就可以很随意的订阅该委托或事件,当委托或事件被触发执行时,会自 ...

  10. C. Coffee Break 贪心 思维 有点难 有意思

    C. Coffee Break 这个贪心之前好像写过,还是感觉挺难的,有点不会写. 这个题目大意是:给你一个数列n个元素,然后给你一天的时间,给你一个间隔时间d, 问你最少要用多少天可以把这个数列的所 ...