Shell 编程(实例二)
创建一个脚本,为指定硬盘创建分区
1、列出当前系统所有磁盘,让用户选择,如果选择quit则退出脚本;如果选择错误,则重新选择
2、当用户选择完成后,询问是否继续
3、抹除选择磁盘上的分区,为其创建三个分区,每个分区100M
#!/bin/bash #获得当前主机识别磁盘
fdisk -l | grep "^Disk /dev/sd[ab]" | cut -d':' -f1
read -p "please chioce the disk you want to partation :" PARTDISK #如果输入quit则退出脚本
if [ $PARTDISK == 'quit' ]
then
exit
fi #判断用户输入磁盘是否存在
until fdisk -l | grep "^Disk /dev/sd[ab]" | cut -d':' -f1 | grep "^Disk $PARTDISK$" &> /dev/null
do
read -p "error , input again:" PARTDISK
done #是否确认执行
read -p "are you affirm to partation : (y/n)" CHOICE
until [ $CHOICE == 'y' -o $CHOICE == 'n' ]
do
read -p "are you affirm to partation : (y/n)" CHOICE
done if [ $CHOICE == 'n' ]
then
exit
else
#抹除磁盘上所有分区
dd if=/dev/zero of=$PARTDISK bs= count= &> /dev/null
#同步到磁盘
sync
#等待磁盘同步完成
sleep
#创建分区
echo 'n
p +100M
n
p +100M
n
p +100M
w' | fdisk $PARTDISK
sync
sleep partprobe $PARTDISK
mke2fs -j ${PARTDISK}
mke2fs -j ${PARTDISK}
mke2fs -j ${PARTDISK}
fi
总结:
1、循环条件体中如果是要获得命令执行是否成功,则可以直接输入命令
2、使用交互式命令在脚本中可以通过 echo ... | 命令 的方式执行
3、dd if=/dev/zero of=/dev/磁盘 通过改写MBR中分区表抹除磁盘分区
Shell 编程(实例二)的更多相关文章
- shell编程(二)
第三十二次课 shell编程(二) 目录 十五.shell中的函数 十六.shell中的数组 十七.告警系统需求分析 十八.告警系统主脚本 十九.告警系统配置文件 二十.告警系统监控项目 二十一.告警 ...
- Shell编程实例
一.简介 从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更 ...
- shell编程练习(二): 笔试11-20
笔试练习(二): 11.写一个shell脚本来得到当前的日期,时间,用户名和当前工作目录. [root@VM_0_5_centos test]# vi 11.sh [root@VM_0_5_cento ...
- shell编程基础(二): shell脚本语法之分支语句和循环语句
一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与 ...
- 【shell】shell编程(二)-运算符
上篇我们学会了如何使用及定义变量.按照尿性,一般接下来就该学基本数据类型的运算了. 没错,本篇就仍是这么俗套的来讲讲这无聊但又必学的基本数据类型的运算了. 基本数据类型运算 操作符 符号 语义 描述 ...
- shell编程基础二
一.流程控制 while循环:只要条件满足一直循环 read -p "请输入一个数字:" white_data while [ ${white_data} -lt 20 ] do ...
- 【转】linux shell编程实例总结
查找当前目录中所有大于500M的文件,把这些文件名写到一个文本文件中,并统计其个数 find ./ -size +500M -type f | tee file_list | wc 在目录/tmp下找 ...
- Linux下的shell编程(二)BY 四喜三顺
Ctrl + Alt + T 打开终端, $代表普通用户,#代表超级用户(root user)如: xiangqi@xiangqi ~$ root@xiangqi ~# ec ...
- Linux下shell编程实例
1. 推断一文件是不是块或字符设备文件.假设是将其复制到 /dev 文件夹下 read -p "input a file:" filename if [ -b $filename ...
- shell脚本实例二
练习题一:对已经存在的用户做密码的修改等操作 vim user_ctrl.sh ##进行如下编写 #!/bin/bashShow(){ read -p ...
随机推荐
- 客户端负载均衡Feign之四:Feign配置
Ribbon配置 在Feign中配置Ribbon非常简单,直接在application.properties中配置即可,如: # 设置连接超时时间 ribbon.ConnectTimeout=500 ...
- mina2中的session
简介 session类图 Mina每建立一个连接同时会创建一个session对象,用于保存这次读写需要用到的所有信息.从抽象类AbstractIoSession中可以看出session具有如下功能: ...
- 学习笔记之DevOps
DevOps - Wikipedia https://en.wikipedia.org/wiki/DevOps DevOps (a clipped compound of "developm ...
- InnoDB多版本(MVCC)实现简要分析(转载)
http://hedengcheng.com/?p=148 基本知识 假设对于多版本(MVCC)的基础知识,有所了解.InnoDB为了实现多版本的一致读,采用的是基于回滚段的协议. 行结构 InnoD ...
- [UE4]Visiblity、Render Opacity
Visiblity 1.Visible 默认是visible,可见,并且可响应事件(如点击事件) 2.Collapsed 不可见.不响应事件.不占用容器空间 3.Hidden 不可见,不响应事件,但占 ...
- [UE4]GameMode、GameInstance、GameState、PlayerState、PlayerController
一.只有PlayerController和Pawn/Character才有输入事件(键盘.鼠标等等),PlayerState没有输入事件. 二.对于需要跨域关卡的数据信息,根据上图所知需要放到Game ...
- [UE4]移动相机,使用Arrow组件来标记移动位置
一.创建一个Arrow组件来标记要移动的位置(Arrow的用法之一就是用来标注坐标). 二.使用TimeLine时间轴结合插值Lerp来移动相机
- 如何配置Linux系统防火墙,以防止DDOS攻击?
虚拟主机服务商在运营过程中可能会受到黑客攻击,常见的攻击方式有SYN,DDOS等.通过更换IP,查找被攻击的站点可能避开攻击,但是中断服务的时间比较长.比较彻底的解决方法是添置硬件防火墙.不过,硬件防 ...
- vue 路由 以及默认路由跳转
https://router.vuejs.org/ vue路由配置: 1.安装 npm install vue-router --save / cnpm install vue-router --sa ...
- echarts折现图配置
js引用和div容器 <div id="container" style="height: 100%"></div> <scrip ...