shell脚本实例二
练习题一:对已经存在的用户做密码的修改等操作
vim user_ctrl.sh ##进行如下编写
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
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 (删除后,则不会在中端显示提示信息)
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.脚本测试结果:
vim answer.sh ##使用输入重定向
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脚本实例二的更多相关文章
- Linux shell脚本编程(二)
Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...
- shell脚本(二)
shell脚本(二)——变量 一.定义:用来存放各种数据,编程语言组成部分 变量的命名规则: 变量名由数字 字母下划线组成 必须以字母或者下划线开头 不能使用shell里面的关键词 ...
- 分享7个shell脚本实例--shell脚本练习必备
概述 看多shell脚本实例自然就会有shell脚本的编写思路了,所以我一般比较推荐看脚本实例来练习shell脚本.下面分享几个shell脚本实例. 1.监测Nginx访问日志502情况,并做相应动作 ...
- Shell脚本之二 变量、字符串和数组
一.Shell 变量 1.1 定义变量 定义变量时,变量名不加美元符号($),如: your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和你熟悉的 ...
- shell脚本实例一
一. 什么是shell 脚本时一种解释性语言: shell脚本保存执行动作: 脚本判定命令的执行条件 脚本来实现动作的批量执行.二.如何创建 vim test.sh ##shell脚本一般都 ...
- shell脚本学习(二)
shell传递参数 shell脚本在执行是可以传递参数,脚本内获取参数的格式为:$n,n为一个数字,1为第一个参数,2为第二个参数,以此类推 其中,$0代表了要执行的文件名 实例: 代码如下: #!/ ...
- shell脚本实例,通向shell脚本大师的必经之路
概述 读书百遍其义自见,shell脚本也是,只要例子看得多了,自然就知道怎么写了.这里主要整理了20几个例子,因为内容比较多,所以分了几次来做介绍了.下面的实例最好先自己思考怎么去实现,然后再看下实现 ...
- shell脚本实例-系统监控
shell脚本监控网站并实现邮件.短信报警shell进程监控脚本(发送邮件报警)Shell脚本监控服务器在线状态和邮件报警的方法 http://www.jbxue.com/jb/shell/ 11. ...
- shell脚本实例
备注:一些与传递给shell的参数相关的变量:$# 命令行参数的个数$? 调用命令的返回值$$ 当前进程的进程号$! 最后一个后台命令的进程号$0 命令行的第一个参数,也就是命令名$n 命令行的第n个 ...
随机推荐
- mouseover 有一个多次触发的问题
mouseover 有一个多次触发的问题 需要注意 由于浏览器的冒泡行为.造成如果在一个DIV元素上同时定义了mouseover,mouseout的时候,当鼠标移动到DIV中的child子元素的时候, ...
- 快用Visual Studio(四)- 主题 偏好与快捷键
使用$ CMD + ,打开快捷键设置窗口 使用$ CMD + SHIFT + ,切换默认配置 使用$ CMD + SHIFT + O打开搜索框搜索已配置选项 关于代码偏好设置有三种模式: 默认模式:C ...
- 【前端】Flex 布局教程:语法篇 [转]
网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂 ...
- bat(续五)-获取批处理文件所在路径
获取批处理文件所在路径 在开发时,经常需要使用批处理运行一些程序,java程序 犹其是这样,往往需要运行时根路径.Hardcode一个路径总是令自己觉得不自在,例如一个java程序从一台 ...
- 2019 google kickstart round A
第一题: n个人,每个人有一个对应的技能值s,现在要从n个人中选出p个人,使得他们的技能值相同. 显然,如果存在p个人的技能值是相同的,输出0就可以了.如果不存在,就要找出p个人,对他们进行训练,治他 ...
- PHP设计模式(六): 单例模式
- maven中pom.xml解释
知识点:解释maven中,各个标签的含义 转载:http://blog.sina.com.cn/s/blog_534f69a001010lpv.html (1)Introduce maven项目的核心 ...
- vue编译环境和线上环境url切换
新建一个配置js,导入到接口请求管理类,可以自动根据环境切换if (process.env.NODE_ENV == 'development') { baseUrl = ''; }else{ base ...
- ng2 quickstart-primeng
1.导入quickstart-angular项目 2.安装primeng npm install primeng 3.安装@angular/animations npm install @angula ...
- oracle添加用户并给予管理员身份登陆
sqlplus / as sysdba;--超级管理员sys登陆 show user;--显示当前用户 conn system/admin;--切换用户 CREATE user admin ident ...