首页 > 系统相关 >shell脚本习题

shell脚本习题

时间:2024-05-15 11:19:39浏览次数:29  
标签:脚本 10 shell 提示 用户 echo 100 习题 输入

目录

1.计算1到100所有整数的和

#/bin/bash
#计算1到100所有整数的和

sum=0
for ((i=1; i<=100; i++))
{
 sum=$[sum + $i]
}
echo "1到100所有整数的和: $sum"

2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和

#!/bin/bash
#计算从1到任意数(100)之间整数和100所有整数的和

a=1
sum=0
read -p "请输入一个1到100的整数:" num
if [ $num -ge 1 ] && [ $num -le 100 ];then

  while [ $a -le $num ]
  do
    let sum+=a
    let a++

  done

  echo "1到100总和为$sum"

else
  echo "输入有误!"
fi



3.求从1到100所有整数的偶数和、奇数和


4.用户名存放在users.txt文件中,每行一个,判断文件里的用户是否存在,若该用户存在,输出提示该用户已存在;用户存在但没设密吗,则提示用户并让用户设置密码;若该用户不存在,提示用户输入密吗,建立用户并设立其密码

5.检测指定范围主机是否通信,并将通信的主机ip输出到文件host_ip中。

6.用户输入密码,脚本判断密码是否正确,正确密码为123456,输入正确提示正确信息,连续输错3次则报警

7.编写能够自动生成一个6位随机密码的脚本

8.输出PATH环境变量的目录里所有以se开头的文件


9.求裴波拉切数:1,1,2,3,5,8,13,21,34,55,89..,数列从第3项开始每一项等于前两项之和,打印前10个元素

10.使用循环语句将一个 0到255 之间的十进制数转换成8位数二进制数


11.将一个200行的文件分割成多个50行的文件


12.写个脚本实现 猜测0-999的随机价格,猜不中,五次机会

#!/bin/bash
#写个脚本实现 猜测0-999的随机价格,五次猜测机会

PRICE=$[RANDOM % 1000]
a=1
b=0
while [ $a -eq 1 ]; 
do
   read -p "请输入你猜测的价格(0-999):" NUM
   let b++
   if [ $NUM -eq $PRICE ] && [ $b -le 5 ]; then
      echo "恭喜你!猜中了!!"
      exit 0    
   elif [ $NUM -gt $PRICE ] && [ $NUM -le 9999 ]; then 
        if [ $b -lt 5 ]; then
        echo "猜大了!请重猜!!"
        else
           echo "不好意思,机会用完了!"
           exit 1
        fi
   elif [ $NUM -lt $PRICE ] && [ $NUM -le 9999 ]; then    
        if [ $b -lt 5 ]; then
      echo "猜小了!请重猜!!" 
        else
           echo "不好意思,机会用完了!"
       exit 2 
      fi
      else       
       echo "猜测有误!请重新输入!!"
   fi

done
~    

13.批量添加用户 用户名称以stu开头,按数字顺序进行编号 一共添加20个用户,即stu1、stu2、……、stu20 初始密码均设为123456

#!/bin/bash
#批量添加用户 用户名称以stu开头,按数字顺序进行编号 一共添加20个用户,即stu1、stu2、……、stu20 初始密码均设为123456

i=1
while [ $i -le 20 ]
do
    useradd stu$i &> /dev/null
    echo 123456 | passwd --stdin stu$i &> /dev/null
    echo "stu$i 用户密码创建完毕!"
    let i++
done

14.每10秒检查系统内存使用率是否超过80%

#!/bin/bash
#每10秒检查系统内存使用率是否超过80%

while true
do
   used=$(free | grep Mem | awk '{print $3}')
   total=$(free | grep Mem | awk '{print $2}')
   percent=$[used * 100 / total]
  if [ $percent -ge 80 ]; then
     echo "警告!警告!当前系统内存使用率超过80%,当前使用率为 ${percent}%"
   fi
   sleep 10

done

15.根据IP地址检查主机状态 使用ping命令检测 20.0.0.0.0~255 的主机,获取在线的主机清单

16.猴子摘下了n个香蕉,当天吃掉一半多一个,第二天也是吃掉剩下香蕉一半多一个,到了第十天,香蕉只剩下了1个。问:猴子第一天摘了多少香蕉?

17.根据IP地址检查主机状态 IP地址存放在ipadds.txt文件中,每行一个 使用ping命令检测各主机的连通性

18.禁用当前系统除了root用户以外的可登录用户

19.用case语句在/etc/init.d/目录中写一个firewalld脚本,并加入到系统服务管理中(#chkconfig: 2345 99 20),使能够使用 service firewalld start|stop|restart|status 来管理firewalld服务,要求如果命令选项不对,则提示 “用法: $0 {start|stop|status|restart}”。

20.用case语句解压根据后缀名为 .tar.gz 或 .tar.bz2 的压缩包到 /opt目录

21.提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别,男生进男生组,女生进女生组,如果输入错误请提示错误

22.判断挂载点目录/cdrom是否存在,若存在则挂载光盘镜像,若不存在则自动创建目录并挂载光盘镜像,注:光盘镜像不知是否存在。



23.检查当前用户家目录中是否存在 test.sh 文件,并且检查是否有执行权限

#!/bin/bash
#检査当前用户家目录中是否存在 test.sh 文件,并且检査是否有执行权限

#if [ -f ~/test.sh ]

if [ -f /root/test.sh ]; then
  echo "文件已存在" 
# if [ -x ~/test.sh ]; then

  if [ -x /root/test.sh ]; then
   echo "有执行权限"
  else
   echo "无权限"
   fi
else
  echo "文件不存在"
fi

24.提示用户输入内容,使用if 语句判断输入的内容是否为整数。

25.根据上一题再判断输入的内容是奇数还是偶数

26.每10秒检查系统内存使用率是否超过80%

#!/bin/bash
#每10秒检查系统内存使用率是否超过80%

while true
do
  memused=$(free | grep Mem | awk '{print $3}')
  memtotal=$(free | grep Mem | awk '{print $2}')

  usedpercent=$[memused * 100 / memtotal]

  if [ $usedpercent -ge 20 ];then
    echo "警告!当前系统内存使用率超过80%,当前使用率为 ${usedpercent}%"
  fi

  sleep 10
done

27.批量添加用户,用户名存放在users.txt文件中,每行一个,初始密码均设为123456

#!/bin/bash
#批量添加用户,用户名存放在users.txt文件中,每行一个,初始密码均设为123456
userfile=/root/users.txt

for name in $(cat $userfile)
do
  useradd $name
  echo 123456 | passwd --stdin $name &> /dev/null
done 

echo "批量添加用户完成"

29.99乘法表


30.三角形




uploading-image-878537.png

31.菱形


32.将一个点分十进制格式的IP地址转换成点分二进制格式,定义将十进制转换成二进制功能的函数

#/bin/bash
#将一个点分十进制格式的IP地址转换成点分二进制格式
#定义将十进制转换成二进制功能的函数
switch() {
      num=$1
      result=''
      for j in {1..8}
      do
        yushu=$[num % 2]
        num=$[num / 2]
        result=$yushu$result
      done
         echo $result
}
###### main ######
 read -p "请输入一个IPv4:" IP
n=0
#外循环分割出IP的每段数值
for ((i=1; i<=4; i++))
do
   NUM=$(echo $IP | awk -F. "{print \$$i}")
   res=$(switch $NUM)
   let n++
   #使用n变量作为计数器,当n=4即转换IP的第4段数值后不再使用echo -n
   if [ $n -lt 4 ]; then
       echo -n ${res}.
    else
       echo $res
    fi
done


标签:脚本,10,shell,提示,用户,echo,100,习题,输入
From: https://www.cnblogs.com/zsy828/p/18185199

相关文章

  • Shell编程之循环语句与函数
    目录1.循环语句(1)for循环语句(2)while循环语句(3)untli循环语句(4)双层循环2.Shell函数(1)函数返回值:(2)函数传参:(3)函数变量的作用范围:(4)递归3.Shell数组(1)定义数组(2)查看数组(3)数组分片、字符替换和删除(4)追加(5)数组排序算法:1.循环语句(1)for循环语句for变量in取值列表for((变量=初始值;变量......
  • Percona XtraBackup全备与增量备份脚本
    1、全备脚本#!/bin/bashBAK_DIR_ROOT="/mysql/backup"MYSQL_USERNAME="root"MYSQL_PASSWORD="root"MYSQL_CNF="/mysql/data/3306/my.cnf"BAK_FULL_DIR=$BAK_DIR_ROOT/mysqlbackup`(date+%Y%m%d)`/mysqlfullbackupBAK_LOG="......
  • 脚本库语法提示支持,Fast Request 2024.1.5 发布
    FastRequest 是一个类似于Postman的IDEA插件。它是一个强大的restfulapi工具包插件,可以根据已有的方法帮助您快速、自动生成url和params。RestfulFastRequest=API调试工具+API管理工具+API搜索工具。它有一个漂亮的界面来完成请求、检查服务器响应、存储......
  • XShell执行systemctl stop network命令后断开连接,并重连失败
    在XShell中执行命令systemctlstopnetwork后,断开了与虚拟机的连接,进行重新连接,显示连接失败,停止虚拟机网络服务后,XShell无法继续连接。需要重启虚拟机的网络服务【1】重启解决systemctlstopnetwork是暂时关闭服务,不是永久的,所以重启后会自启。在主机有网络的情况下,重启......
  • [shell:bash] ubuntu_remove_old_kernel_test
    [shell:bash]  ubuntu_remove_old_kernel_test    一、基本信息 1、os:Linuxubuntu6.5.0-35-generic#35-UbuntuSMPPREEMPT_DYNAMICFriApr2611:23:57UTC2024x86_64x86_64x86_64GNU/Linux 2、bash:GNUbash,version5.2.......
  • 脚本
    脚本什么是脚本脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常是以文本(ASCⅡ)保存,只是在被调用时进行解释或者编译。构成脚本的编写都是采用某一种编程语言;如:Scala、JavaScript,VBScript,ActionScript,MAXScript,ASP,JSP,PHP,SQL,Perl,Shell......
  • shell循环
    echoecho-n表示不换行输出echo-e表示输出转义符常用的转义符\r光标移至行首,并且不换行\s当前shell的名称,如bash\t插入Tab键,制表符\n输出换行\f换行,但光标仍停留在原处\表示插入"\"本身转义\b表示退格不显示前一个字符\c抑制更多......
  • shell编程规范与变量
    shell脚本基础1.shell概述shell脚本的概念将要执行的命令按顺序保存到一个文本文件给该文件可执行权限可结合各种shell控制语句以完成更复杂的操作shell应用应用场景重复性操作交互性操作批量事务处理服务运行状态监控定时任务执行应用场景shell的作用Linux系统......
  • shell条件语句
    一、测试文件测试testtest的语法test条件表达式[条件表达式]test选项文件-d:判断是否是目录(Directory)-f:判断是否是普通文件(File)-b:判断是否是块设备(block)-c:判断是否是字符设备-e:判断是否存在(Exist)-a:判断是否存在-r:判断是否有读的权限(Read)-w:判断......
  • Mysql批量插入数据(python脚本)
    有个需求:需要在table1中插入205条数据,role_id固定为65,menu_id从91开始方法二:python脚本实现PyMySQL是一个纯Python编写的MySQL客户端库,用于连接和操作MySQL数据库。以下是PyMySQL的主要功能和优点:功能:数据库连接:PyMySQL提供了connect()方法,用于建立与MySQL数据库的连接。一旦......