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 ...
随机推荐
- leedcode_贪心算法系列
861. 翻转矩阵后的得分 思路: 行首的权值最大,故首先将其置1; 每列由于权值相同,故只需要将0多于1的情况反转即可 763. 划分字母区间 思路: 1.计算每个字母的最右边界下标,并记录到新数组 ...
- gitlab ssh clone问题解决
公司搭建的gitlab,通过http协议可以clone: [sisi@pre-srv24 gitlab]$ git clone http://gitlab.test.mycompany.com/dev ...
- PAT 甲级 1001 A+B Format (20)(20 分)
1001 A+B Format (20)(20 分) Calculate a + b and output the sum in standard format -- that is, the dig ...
- vue-router总结2
在上一篇总结了vue-router中的路由切换.重定向和路由传参等知识,因为篇幅的原因,便将剩下的路由模块化.路由嵌套.history模式.路由守卫等放在这里来写了.因为是继续前面的写.所以代码也还是 ...
- 匿名内部类访问方法成员变量需要加final的原因及证明(转)
https://blog.csdn.net/wjw521wjw521/article/details/77333820 在java编程中,没用的类定义太多对系统来说也是一个负担,这时候我们可以通过定义 ...
- ngIf和ngFor共用
Angular v2不支持同一元素上使用多个结构指令. 一种解决方法,使用<ng-container>,允许为每个结构指令使用单独元素的元素,但不会将其标记为DOM. <ng-con ...
- [UE4]多线程开关,开启的解决方案
像这样直接获取值就会被警告. 解决方法:定义一个变量speed,然后在“Blueprint Update Animation”事件中赋值给这个变量. 这样就不会被警告了. 另外一种解决方法:就是关掉多 ...
- echart力导向图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="GBK" ...
- javascript-时间戳
// 获取当前时间戳(以s为单位) var timestamp = Date.parse(new Date()); timestamp = timestamp / 1000; console.log( ...
- Markdown画各种图表
并不是所有编辑器都支持,比如博客园这个就不支持... 流程图 st=>start: 开始 op=>operation: 首先按个按钮 op2=>operation: 那你从头开始吧 ...