bash脚本编程实例

bash脚本编程实例

  • 1.写一个脚本

    • 能接受四个参数:start、stop、restart、status
    • start:输出“starting脚本名finished.”
    • restart:输出“restarting脚本名finished.”
    • stop:输出“stoping脚本名finished.”
    • status:输出“status脚本名finished.”
    • 其他任意参数,均报错退出

      #!/bin/bash
      case $1 in
      start)
      echo "starting ${0} finished."
      ;;
      stop)
      echo "stoping ${0} finished."
      ;;
      restart)
      echo "restarting ${0} finished."
      ;;
      status)
      echo "status ${0} finished."
      ;;
      *)
      echo "error input."
      exit 1
      ;;
      esac
  • 2.写一个脚本,判断给定的用户是否登录了当前系统

    • 如果登录了,则显示用户登录,脚本终止
    • 每三秒钟,查看一次用户是否登录

      #!/bin/bash
      if [ $# -eq 0 ];then
       echo "there is no username inputing."
       exit 1
      fi
      
      while true;do
       if id $1 &> /dev/null;then
           user=$(who|grep "^$1"|cut -d' ' -f1)
           if [[ $user == $1 ]];then
               echo "$1 has logined."
               break
           else
               sleep 3
           fi
       else
          echo "there is no user like $1."
          exit 2
      fi
      done
  • 3.写一个脚本,显示用户选定要查看的信息

    • cpu)display cpu info
    • mem)display memory info
    • disk)display disk info
    • quit)quit
    • 非此四项选择,则提示错误,并要求用户重新选择,直到其给出正确的选择为止

      #!/bin/bash
      cat << EOF
      cpu)display cpu info
      mem)display memory info
      disk)display disk info
      quit)quit
      EOF
      
      read -p "please input:" ops
      
      while true;do
       if [ $ops != "cpu" -a $ops != "mem" -a $ops != "disk" -a ops != "quit" ];then
         read -p "please input again:" ops
       else
         break
       fi
      done
      
      case $ops in
      cpu)
        lscpu
      ;;
      mem)
        free -m
      ;;
      disk)
        fdisk -l
      ;;
      quit)
        exit 0
      ;;
      esac
  • 4.写一个脚本

    • 用函数实现返回一个用户的ID和SHELL;用户名通过参数传递而来
    • 提示用户输入一个用户名或者输入“quit”退出
    • 当输入的是用户名,则调用函数显示用户信息
    • 当用户输入quit,则退出脚本,进一步地,显示键入的用户相关信息后,再次提醒输出用户名或者quit

      #!/bin/bash
      
      userinfo(){
       if [ -z $1 ];then
           return 1
       elif id $param &>> /dev/null;then
           echo "$1 ID is $(id -u $1)."
           echo "$1 shell is $(grep "^$1" /etc/passwd|cut -d: -f7)"
       else
           return 1
       fi
      
      }
      
      while true;do
       read -p "please input a username or quit:" param
       if [[ $param == "quit" ]];then
          exit 0
       else
          userinfo $param
          [ $? -eq 1 ]&&echo "no user named $1."
       fi
      done

原创文章,作者:N27_xiaoni,如若转载,请注明出处:http://www.178linux.com/85821

(2)
N27_xiaoniN27_xiaoni
上一篇 2017-09-04 11:14
下一篇 2017-09-04 11:43

相关推荐

  • 马哥教育21期网络班—第15周课程+练习—-awk 总结

    GNU awk: 文本处理三工具:grep, sed, awkgrep, egrep, fgrep:文本过滤工具;pattern sed: 行编辑器 模式空间、保持空间 awk:报告生成器,格式化文本输出; AWK: Aho, Weinberger, Kernighan&nbsp…

    Linux干货 2016-11-14
  • vim编辑器

    在使用Linux的管理过程中有很多的工作就是要修改或设置某些重要软件的配置文件,这些配置文件都是以ASCLL的纯文本格式存在的,所以能够学好一个文本编辑器就至关重要了,vim作为高级版的vi编辑器不仅可以用不同的颜色来高亮显示某些重要关键字或字符还能进行如shell脚本的编写,c程序的编辑等功能。 vim编辑器和nano编辑器是一个全屏的编辑器。vim打开文…

    Linux干货 2016-12-20
  • 面授20-1班 0805课间练习与课后作业

    课间练习 第一阶段 新学的命令文本命令cat tac rev more less head tail cut paste wc sort dif patch 1 、找出ifconfig 命令结果中本机的所有IPv4 地址 [root@IP70-CentOS7 ~]# >>ifconfig | tr&nbsp…

    Linux干货 2016-08-07
  • God进程监控框架

    监控重启进程的方案有很多种: 最简单的方法,写个脚本fork进程运行,然后waitpid,如果获pid后就再次启动 最土的方法,配置cron任务,固定时间运行脚本检查进程是否存在,不存在则启动 百度使用qmail里的supervised程序,通过supervised监管进程。 优点:supervised可以启动daemon程序,对于非daemon需要采用no…

    Linux干货 2015-02-13
  • SHELL脚本基础速览

    变量的赋值: Shell变量赋值从右到左进进行赋值 格式:NAME=value 变量的声明: export 变量名  export NAME=value declare –x 变量名 declare –x NAME=value   readonly 变量名  特定情况下需要使用到只读变量 readonly NAME=v…

    2017-04-15
  • shell 脚本基础作业

    1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小 #!/bin/bash :<<EOF 显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小 EOF Host_name=`hostna…

    Linux干货 2016-08-15

评论列表(1条)

  • 马哥教育
    马哥教育 2017-10-10 13:02

    一开始的内容比较基础,但是非常重要,这篇博客整理的很不错,再接再励。