项目 内容
这个作业属于哪个课程 班级课程的主页链接
这个作业的要求在哪里 作业要求链接地址
学号—姓名 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"

最新文章

  1. 我的SQL总结---未完待续
  2. 正则表达式re模块
  3. mongodb数据导入导出以及备份恢复
  4. UBoot讲解和实践-------------讲解(二)
  5. javascript 构造函数方式定义对象
  6. [iOS]深入浅出 iOS 之多线程 NSThread
  7. MEF 编程指南(四):声明导入
  8. (转)JavaWeb学习总结(十三)——使用Session防止表单重复提交
  9. 安装 mysql
  10. jQuery 源码分析和使用心得 - 序
  11. windows环境下Mongodb分片配置
  12. [coding horror] 1 - sum 2
  13. ML神器:sklearn的快速使用
  14. struts2 可以用ognl拿到值而不可以用el拿到值的解决方法
  15. Linux 的umask详解
  16. ASP.NET -- WebForm -- ViewState
  17. ios --指纹TouchID
  18. 【Java】 剑指offer(38) 字符串的排列
  19. LeetCode OJ 60. Permutation Sequence
  20. Windows ,获取硬盘物理序列号(VC++)

热门文章

  1. iOS开发·runtime原理与实践: 消息转发篇(Message Forwarding) (消息机制,方法未实现+API不兼容奔溃,模拟多继承)...
  2. C++如何求程序运行时间
  3. JAVA_WEB--jsp语法
  4. 【K8S】K8S 1.18.2安装dashboard(基于kubernetes-dashboard 2.0.0版本)
  5. win10 手动安装mysql-8.0.11-winx64.zip
  6. 70行实现Promise核心源码
  7. 软件——IDEA主题美化
  8. 学习Vue第三节,事件修饰符stop、prevent、capture、self、once
  9. 王颖奇 20171010129《面向对象程序设计(java)》第十六周学习总结
  10. CTR预估模型演变及学习笔记