创建一个脚本,为指定硬盘创建分区

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 编程(实例二)的更多相关文章

  1. shell编程(二)

    第三十二次课 shell编程(二) 目录 十五.shell中的函数 十六.shell中的数组 十七.告警系统需求分析 十八.告警系统主脚本 十九.告警系统配置文件 二十.告警系统监控项目 二十一.告警 ...

  2. Shell编程实例

    一.简介 从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更 ...

  3. shell编程练习(二): 笔试11-20

    笔试练习(二): 11.写一个shell脚本来得到当前的日期,时间,用户名和当前工作目录. [root@VM_0_5_centos test]# vi 11.sh [root@VM_0_5_cento ...

  4. shell编程基础(二): shell脚本语法之分支语句和循环语句

    一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与 ...

  5. 【shell】shell编程(二)-运算符

    上篇我们学会了如何使用及定义变量.按照尿性,一般接下来就该学基本数据类型的运算了. 没错,本篇就仍是这么俗套的来讲讲这无聊但又必学的基本数据类型的运算了. 基本数据类型运算 操作符 符号 语义 描述 ...

  6. shell编程基础二

    一.流程控制 while循环:只要条件满足一直循环 read -p "请输入一个数字:" white_data while [ ${white_data} -lt 20 ] do ...

  7. 【转】linux shell编程实例总结

    查找当前目录中所有大于500M的文件,把这些文件名写到一个文本文件中,并统计其个数 find ./ -size +500M -type f | tee file_list | wc 在目录/tmp下找 ...

  8. Linux下的shell编程(二)BY 四喜三顺

    Ctrl + Alt + T 打开终端, $代表普通用户,#代表超级用户(root user)如:    xiangqi@xiangqi ~$           root@xiangqi ~# ec ...

  9. Linux下shell编程实例

    1. 推断一文件是不是块或字符设备文件.假设是将其复制到 /dev 文件夹下 read -p "input a file:" filename if [ -b $filename ...

  10. shell脚本实例二

    练习题一:对已经存在的用户做密码的修改等操作 vim  user_ctrl.sh                 ##进行如下编写 #!/bin/bashShow(){        read -p ...

随机推荐

  1. bzoj4812: [Ynoi2017]由乃打扑克

    由于查询的是树链的并的信息,同时信息不能高效合并,只能考虑用bitset维护,小范围暴力预处理以便从bitset算出答案 对树分块,保证每块是连通的且直径较小,对分出的块缩点建新树,在新树上建树上ST ...

  2. 力奋github:https://github.com/birdstudiocn

    我的github地址https://github.com/birdstudiocn

  3. Linux rpm包安装MySQL数据库问题总结

    1.安装包准备 2.按顺序安装以下安装包 一定要按顺序安装,因为前面的包是后面包的依赖 [root@iz2ze1bzpi3orra8lboxqiz mysql]# rpm -ivh Percona-S ...

  4. C语言强化——字符串(2)

    1.将包含字符数字的字符串分开,使得分开后的字符串前一部分是数字后一部分是字母.例 如"h1ell2o3" -> "123hello" #include& ...

  5. centos7.0KVM虚拟化

    需要在图形化界面完成实验 查看CPU信息 # cat /proc/cpuinfo centos7默认安装的虚拟化包 # yum list open*tools 如果没安装就安装 #yum instal ...

  6. Jmeter(二十五)Jmeter之系统函数

    都忘了Jmeter4.0已发布((*^▽^*))具体优化项还没体验,记录一下,传送门:http://jmeter.apache.org/download_jmeter.cgi Jmeter的系统函数已 ...

  7. github .net core

    https://github.com/dotnet/core/blob/master/Documentation/core-repos.md

  8. PHP unset()函数销毁变量

    <?php // 销毁单个变量 unset ($var); // 销毁单个数组元素 unset ($arr['a']); // 销毁多个变量 unset ($var1, $var2, $var3 ...

  9. restframwork框架

    一 APIView: class PublishView(APIView): def get(self,request): publish_list=Publish.objects.all() ret ...

  10. 解决Mac下idea运行速度慢

    刚入手Mac,发现Mac下使用idea进行调试极其慢,然后发现和本地回环地址有关: 只需稍微修改hosts文件即可: sudo vim /etc/hosts,在localhost后面追加你的电脑名.l ...