实验五 shell脚本编程
项 目 | 内容 |
---|---|
这个作业属于哪个课程 | 课程链接 |
这个作业要求在哪? | 作业要求 |
学号-姓名 | 17043115-李映霁 |
作业学习目标 | 1.了解shell脚本的概念及使用 2.掌握shell脚本语言的基本语法 3.学习简单的shell脚本编程 |
首先建立文件夹exp5,操作基于exp5操作,结果如下:
1让用户输入一个字符串,如果用户输入的是hello,请输入hello用户姓名首字母缩写,否则输出hello
#!/bin/bash
read -p '请输入一个字符串:'str
if [ $str = "hello" ]
then
echo "hello lyj"
else
echo "请输入hello"
fi
编写一脚本,判断输入用户名是否存在,输出结果只能是存在该用户或者不存在该用户,不能有其他数据输出
#!/bin/bash
read -p '请输入用户名:' user_name
id $user_name &> /dev/null
if [ $? -eq 0 ]
then
echo "存在用户$user_name"
else
echo "不存在用户$user_name"
fi
编写脚本计算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
[ $sum -eq 2 ] && echo '$num是质数' && exit
for i in `seq 2 $[$num-1]`
do
[ $[$num%i] -eq 0] && echo "&num不是质数" &&exit
done
echo "$num是质数" && exit
!!!注意:seq前后是键盘上esc下面的哪个键产生的`
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循环实现
#shift实现循环
#!/bin/bash
sum=0
while [ $# -ne 0 ]
do
let sum=$sum+$1
shift
done
echo sum=$sum
#用for循环
#!/bin/bash
sum=0
for i
do
let sum=$sum+$i
done
echo sum=$sum
7.编写脚本,生成一个phonenumber.txt文件,文件内容为随机产生以139开头的手机号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位幸运号码,并显示,要求只显示前3位数字和后4位数字,中间四位用*代替
#!/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_nuber:7:4}"
echo $luck_nuber >> luck.txt
sed -i "/$luck_nuber/d" $phone
done