马哥教育网络班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
  • linux磁盘管理及其磁盘分区工具的使用

    一、 几种分区工具: 1.图形化工具gnome-disks使用简单,在此不在赘述。 2.fdisk使用: fdisk支持MBR,也支持GPT分区,对于一块硬盘最多只能理解15个分区,一般使用fdisk做MBR分区,gdisk做GPT分区。下面为fdisk分区示例: [root@centos7 ~]# fdisk /dev/sde…

    Linux干货 2016-08-29
  • sed 流编辑器使用详解

    一、Stream EDitor, 行编辑器   sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出…

    2016-08-10
  • 马哥教育网络班20期+第8周博客作业

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。   网桥:链接层设备,基于MAC地址过滤。   集线器:物理层设备,基本都属于半双工模式。集线器与网桥在现在的局域网中基本都不用了。   二层交换机:基本MAC转发数据,功能齐全的可支持VLAN等功能。常见的有100/1…

    学员作品 2016-09-10
  • 马哥教育网络班20期-第九周课程作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash nologinsum=$(awk -F: '$NF~/\/sbin\/nologin$/{print $1}'&n…

    学员作品 2016-09-08
  • 文本处理工具系列(一):文本的查看、分析、统计和文本过滤工具

    1、文本的查看、分析和统计工具    <1>文本查看工具  cat tac rev more less head  tail  cut  paste       cat         -A:显示所…

    学员作品 2016-08-08