马哥教育网络班20期+第10周博客作业

4、写一个脚本

  (1) 能接受四个参数:start, stop, restart, status

   start: 输出“starting 脚本名 finished.”

   …

  (2) 其它任意参数,均报错退出;

    #!bin/bash

    read -p "Enter a option: " option

    prog=$(basename $0) 
    case "$option" in   
          start)  
            echo "start $prog finished"  
            ;;
          stop)
            echo "stop $prog finished" 
            ;;
          restart)
            echo "restart $prog finished"   
            ;;
          status)
            echo "status $prog" 
            ;;
          *)    
            echo "wrong"  
            exit 3
            ;;  
          esac

5、写一个脚本,判断给定的用户是否登录了当前系统;

  (1) 如果登录了,则显示用户登录,脚本终止;

  (2) 每3秒钟,查看一次用户是否登录;

    #!/bin/bash
    #
    read -p "Enter a user name: " username

    while true; do  
        if who | grep "^$username" &> /dev/null; then 
        break  
        fi
        sleep 3  
    done

    echo "$username logged on." >> /tmp/user.log

6、写一个脚本,显示用户选定要查看的信息;

   cpu) display cpu info

   mem) display memory info

   disk) display disk info

   quit) quit

   非此四项选择,则提示错误,并要求用户重新选择,只到其给出正确的选择为止;

    #!/bin/bash
    #
    cat << EOF
    cpu) show cpu information;
    mem) show memory information;
    disk) show disk information;
    quit) quit
    ============================
    EOF

    read -p "Enter a option: " option
    while [ "$option" != 'cpu' -a "$option" != 'mem' -a "$option" != 'disk' -a "$option" != 'quit' ]; do
        read -p "Wrong option, Enter again: " option
    done

    if [ "$option" == 'cpu' ]; then
        lscpu
    elif [ "$option" == 'mem' ]; then
        cat /proc/meminfo
    elif [ "$option" == 'disk' ]; then
        fdisk -l
    else
        echo "Quit"
        exit 0
    fi

7、写一个脚本

  (1) 用函数实现返回一个用户的UID和SHELL;用户名通过参数传递而来;

  (2) 提示用户:输入一个用户名或输入“quit”退出;

      当输入的是用户名,则调用函数显示用户信息;当用户输入quit,则退出脚本;

         进一步地:显示键入的用户相关信息后,再次提醒输出用户名或quit

      #!/bin/bash
      #
      function showinfo {
      if id $name &> /dev/null;then
          cat /etc/passwd | grep -E '^('$name')\>' |awk -F: '{print $3,$NF}'
          read -p "Enter a username or quit:" name
      else
          read -p  "wrong argument,plsease enter a username or quit:" name
      fi
      }

      read -p "Enter a username or quit:" name
      while [ "$name" != "quit" ];do
          showinfo $name
      done

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

(2)
mississippimississippi
上一篇 2016-12-05 17:05
下一篇 2016-12-05 17:12

相关推荐

  • 2016/08/03:用户管理与权限

    名称解析:User IDentifier UID 组名:Group IDentifier GID                                     &nbsp…

    学员作品 2016-08-05
  • 这个寒冬,如何赶走职场之“霾”

    在父母眼中,我的工作应该是这样的。。。 在朋友眼中,我的工作应该是这样的。。。 在女朋友眼中,我的工作应该是这样的。。。 其实我是这样的。。。 每当夜深人静的时候,我总会站在阳台上,独自一个人陷入沉思,究竟是谁走漏了风声,搞的大家都知道我穷(搬砖的)。。。。 面对每个月干瘪瘪的钱包和房东突然间给的惊喜房租要涨,有种想跳槽的冲动,但是互联网寒冬被大家传的神乎其…

    2015-12-10
  • 关于shell变量计算中单中括号与双中括号、单引号与双引号的一些看法

      单中括号是比较基本的变量计算及数值比较的方法,一般情况下已经足够使用;双中括号是扩展的数值比较方法,里面的数值计算也相对来说复杂些。这里我推荐大家平常工作中使用单中括号即可,满足日常的工作,不做运维开发的话,双括号方面涉及不多。   这里我还得提下单括号与双括号,这里也是我经常混淆的地方,其实理解了也就轻松多了。单括号是对一段比较长的…

    学员作品 2016-08-15
  • 正则表达式

    grep:Global search REgular expression and Print out the line         文本搜索工具,根据用户指定的”模式“对目标文本逐行进行匹配检查;打印匹配到的行        模式:由正则表达式字符及文本字符所编写的过滤条件…

    Linux干货 2016-08-08
  • 关于网络几个比较有意义的实验

    这里我就偷懒,不写过多的6上面的bind的过多步骤了,具体实现的功能就是一个bind1,当然我这里少配了一个网卡。另外一个网卡的配置格式参照eth0即可。 在这里我要重点说一下这个NETWORKMANNAGER这个程序,同学们最好在做的时候将其设置为关闭,具体方法chekconfig NtworkManager stopped 即可。 下面还有一个叫做网络两…

    学员作品 2016-09-07
  • Linux系统安装

    概述:     上篇我们讨论了下关于Linux系统的启动流程和grub相关的内容,本篇将介绍一下Linux的系统安装相关的内容,具体分为:     1、系统安装程序anaconda的介绍     2、kickstart文件的介绍 &nbsp…

    学员作品 2016-09-15