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

相关推荐

  • sed 流编辑器使用详解

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

    2016-08-10
  • linux sed命令

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

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

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

    学员作品 2016-08-08
  • 马哥教育网络第20期-第一周作业

    第一周博客作业1、 描述计算机的组成及其功能。 运算器、控制器、存储器、输入设备、输出设备运算器、控制器 :cpu 运算和逻辑计算存储器:缓存和保存数据输入设备、输出设备:用户和计算机交互设备和界面 2、 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。 Slackware系列: suse   opensuse debian系列: …

    学员作品 2016-06-23
  • 马哥教育网络班20期 第10周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 简述: 第一阶段:BIOS启动引导阶段;                     &…

    学员作品 2016-08-22
  • sed & vim练习

    1、 删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符  2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符 3、在/root/install.log每一行行首增加#号 4、在/etc/fstab文件中不以#开头的行的行首增加#号 5、处理/etc/fstab路径,使用s…

    学员作品 2016-08-10