实验五:shell脚本编程
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 班级课程的主页链接 |
这个作业的要求在哪里 | 作业要求链接地址 |
学号—姓名 | 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脚本编程的更多相关文章
- 实验五 shell脚本编程
项目 内容 这个作业属于哪个课程 课程链接 这个作业的要求在哪里 作业要求 学号-姓名 17041428-朱槐健 作业学习目标 1. 了解shell脚本的概念及使用 2.掌握shell脚本语言的基本语 ...
- 实验五shell脚本编程
项目 内容 这个作业属于哪个课程 <班级课程的主页链接> 这个作业的要求在哪里 作业要求链接地址 学号-姓名 17043220-万文文 作业学习目标 1)了解shell脚本的概念及使用.2 ...
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件.目录属性 shell数组简单用法 $( ) 和$ ...
- SHELL脚本编程的常识和VI常用技巧
来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...
- 浅谈自底向上的Shell脚本编程及效率优化
作者:沐星晨 出处:http://blog.csdn.net/sosodream/article/details/6276758 浅谈自底向上的Shell脚本编程及效率优化 小论文,大家多批评指导:) ...
- SHELL脚本编程-普通数组(列表)和关联数组(字典)
SHELL脚本编程-普通数组(列表)和关联数组(字典) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组相关概述 变量: 存储单个元素的内存空间 数组: 存储多个元素的连续的 ...
- SHELL脚本编程基础知识
SHELL脚本编程基础知识 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux之父Linus有一句话很经典:"Talk is cheap, show me the ...
- SHELL脚本编程的条件测试
SHELL脚本编程的条件测试 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.条件测试概述 判断某需求是否满足,需要由测试机制来实现 专用的测试表达式需要由测试命令辅助完成测试过 ...
- Shell脚本编程30分钟入门
Shell脚本编程30分钟入门 转载地址: Shell脚本编程30分钟入门 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_t ...
随机推荐
- 父级元素绑定定mouseout和mouseover,移过子元素是都会触发
2019独角兽企业重金招聘Python工程师标准>>> mouseover与mouseenter 不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件. 只有在鼠标 ...
- JS省城级联
2019独角兽企业重金招聘Python工程师标准>>> 这里是HTML内容 <label class="control-label col-md-2 col-sm-3 ...
- codeforces 1287A -Angry Students(模拟)
It's a walking tour day in SIS.Winter, so t groups of students are visiting Torzhok. Streets of Torz ...
- 【Layui__监听button】在form中监听按钮事件
1. 前言 在使用form表单的按钮时,点击按钮总是页面刷新,代码如下 <button class="layui-btn" lay-submit lay-filter=&qu ...
- python http server handle json
用Python实现一个http server # python2 # coding = utf-8 from BaseHTTPServer import HTTPServer, BaseHTTPReq ...
- mui日期设置与时钟样式时间设置
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- Coursera课程笔记----P4E.Capstone----Week 2&3
Building a Search Engine(week 2&3) Search Engine Architecture Web Crawling Index Building Search ...
- 【Hadoop离线基础总结】oozie调度MapReduce任务
目录 1.准备MR执行的数据 2.执行官方测试案例 3.准备我们调度的资源 4.修改配置文件 5.上传调度任务到hdfs对应目录 6.执行调度任务 1.准备MR执行的数据 MR的程序可以是自己写的,也 ...
- Linux下安装JDK11
Linux下安装JDK11 Linux下安装JDK可分为三步: 下载相应版本的压缩包 解压缩并移置相应目录 配置环境变量 验证结果 一.下载相应版本的压缩包 下载压缩包可以通过官网下载,如图: 下载前 ...
- input输入框直接拉起九宫格数字键盘
<input type="number" pattern="\d*">