马哥教育网络班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

相关推荐

  • 网卡别名及Bonding实例

    centos6网卡别名 网卡别名: 作用;为同一个网卡设备配置的多个不同ip地址 配置要求: (1)为每个设备别名生成独立的接口配置文件 (2)需关闭NetworkManager服务               &nbs…

    学员作品 2016-09-02
  • 马哥教育网络班21期-第七周课程练习

    第七周 1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动…

    学员作品 2016-08-29
  • 马哥教育网络班20期-第七周课程作业

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;     ]#mke2fs -t ext4 -b 2048 -L MYDATA -m&n…

    学员作品 2016-09-07
  • 马哥教育网络班20期+第8周博客作业

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

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

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

    学员作品 2016-09-15
  • sed命令详解

    sed命令:  Stream EDitor, 行编辑器  sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重…

    2016-08-10