练习题一:对已经存在的用户做密码的修改等操作

vim  user_ctrl.sh                 ##进行如下编写

#!/bin/bash
Show()
{
        read -p "请输入您想操作的用户名或输入exit退出:" User
        [ "$User" = "exit" ]&&{
                echo bye!!
                exit
        }||{
                TestUser  $User
        }
}
TestUser()
{
        U=$1
        user=`getent  passwd  $U`
        [ -z "$user" ]&&{
                echo "$U 用户不存在!!"
                Show
        }||{
                echo "$U 存在,您进行以下操作:"
                read -p "[D]elete  [C]hangepasswd  [S]kip  [E]xit
                您想执行的操作是:"  ACTION
                [ "$ACTION" = "d" -o "$ACTION" = "D" ]&&{
                        userdel -r $U
                        echo "$U is already  delete!!"
                        Show
                }
                [ "$ACTION" = "c" -o "$ACTION" = "C" ]&&{
                        read -p  "请输入要修改的密码:" pswd
                        echo $pswd | passwd $U &> /dev/null
                        echo "password  is already changed!!"
                        Show
               }
               [ "$ACTION" = "s" -o "$ACTION" = "S" ]&&{
                        echo "Skip  it!!"
                        Show
               }
               [ "$ACTION" = "e" -o  "$ACTION" = "E" ]&&{
                        echo  "bye!!"
                        exit
               }
        }
}
TestUser $1
练习题二:根目录使用率超过40%,则会在屏幕上出现警示提示

1.脚本的编写

vim  alart.sh

#!/bin/bash
View()
{
        num=`df -H | awk '/\/$/{print $5}'|sed 's/%//g'`
        TTY=`ps | awk '/bash$/{print $2}'`
        [ "$num" -gt "40" ]&&{
                echo "Warning: your / is full!!"
                sleep 2
                View
        }||{
                sleep 2
                View
        }
}
View  &                   ##打入后台执行,查看的时候,可以使用PS
2.测试结果:dd if=/dev/zero  of=/mnt/bigfile bs=1M count=800   ##截取文件的大小           

3.删除自己截取的空间大小:rm -rf bigfile  (删除后,则不会在中端显示提示信息)

练习题三:检测可以ping通的主机,并把通的主机号写入/mnt/ip_up;不通的写入/mnt/ip_down

vim  host_test.sh

练习题四:倒计时
1、脚本编写:

vim  countv.sh

2.测试结果:(显示的时候,下一行会覆盖上一行。可以使用man echo查看相关参数)

练习五:使用case命令,当输入cat的时候,输出dog;当输入dog的时候,输出cat;其他情况均输出error。

vim  anima.sh

练习六:自动交互脚本

一、安装expect软件,用来实现交互。执行命令:expect answer.exp

1.脚本编写

vim   answer.sh     ##第五行设置等待时间,超过则进行下一条信息的匹配;最后一行表示留在expect所在环境。


2.脚本测试结果:

二.使用.sh文件来执行;即把answer.exp中内容重定向到sh脚本中

vim  answer.sh       ##使用输入重定向

练习七:自动连接IP,使用SSH服务
1.脚本编写

vim  auto_conn.exp               ##要进入ip的主机,所以需要写interact

2.测试结果:
 

练习八:虚拟机的启动(在主机中进行脚本编写和测试)

vim   virt_test.sh

#!/bin/bash
case $1  in
        start)
        echo `rht-vmctl start server`
        ;;
        view)
        echo `rht-vmctl  view  server`
        ;;
        poweroff)
        echo `rht-vmctl  poweroff  server`
        ;;
        *)
        echo "no action!!"
esac

shell脚本实例二的更多相关文章

  1. Linux shell脚本编程(二)

    Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...

  2. shell脚本(二)

              shell脚本(二)——变量 一.定义:用来存放各种数据,编程语言组成部分 变量的命名规则: 变量名由数字 字母下划线组成 必须以字母或者下划线开头 不能使用shell里面的关键词 ...

  3. 分享7个shell脚本实例--shell脚本练习必备

    概述 看多shell脚本实例自然就会有shell脚本的编写思路了,所以我一般比较推荐看脚本实例来练习shell脚本.下面分享几个shell脚本实例. 1.监测Nginx访问日志502情况,并做相应动作 ...

  4. Shell脚本之二 变量、字符串和数组

    一.Shell 变量 1.1 定义变量 定义变量时,变量名不加美元符号($),如: your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和你熟悉的 ...

  5. shell脚本实例一

    一. 什么是shell 脚本时一种解释性语言: shell脚本保存执行动作: 脚本判定命令的执行条件 脚本来实现动作的批量执行.二.如何创建 vim  test.sh     ##shell脚本一般都 ...

  6. shell脚本学习(二)

    shell传递参数 shell脚本在执行是可以传递参数,脚本内获取参数的格式为:$n,n为一个数字,1为第一个参数,2为第二个参数,以此类推 其中,$0代表了要执行的文件名 实例: 代码如下: #!/ ...

  7. shell脚本实例,通向shell脚本大师的必经之路

    概述 读书百遍其义自见,shell脚本也是,只要例子看得多了,自然就知道怎么写了.这里主要整理了20几个例子,因为内容比较多,所以分了几次来做介绍了.下面的实例最好先自己思考怎么去实现,然后再看下实现 ...

  8. shell脚本实例-系统监控

    shell脚本监控网站并实现邮件.短信报警shell进程监控脚本(发送邮件报警)Shell脚本监控服务器在线状态和邮件报警的方法 http://www.jbxue.com/jb/shell/ 11. ...

  9. shell脚本实例

    备注:一些与传递给shell的参数相关的变量:$# 命令行参数的个数$? 调用命令的返回值$$ 当前进程的进程号$! 最后一个后台命令的进程号$0 命令行的第一个参数,也就是命令名$n 命令行的第n个 ...

随机推荐

  1. Greatest Common Increasing Subsequence

    /*HDU1423 最长公共递增*/ #include <stdio.h> #include <string.h> #include <iostream> usin ...

  2. 【MSDN_C#】C#版本介绍

    C# 1,Visual Studio .NET 2002 首次发布 C# 1.1,Visual Studio .NET 2003 #line 杂注和 xml 文档注释 C# 2,Visual Stud ...

  3. js 判断是ie浏览器

    if (!+[1,]) { //IE window.event.returnValue = false; } else { return false; }

  4. Java如何清空数组、对象

    //清空 public class Clear { public static void main(String[] args){ // List<String> a= new Array ...

  5. RocEDU.阅读.写作《苏菲的世界》书摘(四)

    亚理斯多德认为,快乐有三种形式.一种是过着享乐的生活,一种是做一个自由而负责的公民,另一种则是做一个思想家与哲学家.接着,他强调,人要同时达到这三个标准才能找到幸福与满足. 亚理斯多德提倡所谓的&qu ...

  6. 20145333《Java程序设计》课程总结

    每周读书笔记链接汇总 第一周学习总结 第二周学习总结 第三周学习总结 第四周学习总结 第五周学习总结 第六周学习总结 第七周学习总结 第八周学习总结 第九周学习总结 第十周学习总结 实验报告链接汇总 ...

  7. 使用Spring注解注入属性

    本文介绍了使用Spring注解注入属性的方法.使用注解以前,注入属性通过类以及配置文件来实现.现在,注入属性可以通过引入@Autowired注解,或者@Resource,@Qualifier,@Pos ...

  8. 第七篇:Spark SQL 源码分析之Physical Plan 到 RDD的具体实现

    /** Spark SQL源码分析系列文章*/ 接上一篇文章Spark SQL Catalyst源码分析之Physical Plan,本文将介绍Physical Plan的toRDD的具体实现细节: ...

  9. 使用 docker 搭建开发环境

    作为一个 freelancer,经常能够接到很多的开发工作,这些金主,有喜欢 PHP 的,有习惯撒手不管的:有偏好 sqlite 的,也有喜欢 PG 的,我甚至见过 mysql.PG 一起使用的项目: ...

  10. static、final和finalize详解

    一.static 修饰符 数据共享 成员变量(实例变量)和静态变量(类变量)的区别 两个变量的生命周期不同 成员变量随对象的创建而存在,随对象被回收而释放 静态变量随类的加载而存在,随类的消失而消失 ...