脚本练习——格式化硬盘
更新:HHH   时间:2023-1-7


题目要求:

 

  写一个脚本(前提:请为虚拟机新增一块硬盘,假设它为/dev/sdb),为指定的硬盘创建分区:

  1.   列出当前系统上所有的磁盘,让用户选择,如果选择q则退出脚本,如果用户选择错误,则让用户重新选择

  2.   当用户选择后,提醒用户确认接下来的操作可能会损坏数据,并请用户确认,如果用户选择y就继续,否则,让用户重新选择:

  3.   抹除那块硬盘上的所有分区(提示,抹除所有分区后执行sync命令,并让脚本睡眠3s后再分区;并为其创建三个主分区,第一个为20M,第二个为512M,第三个为128M,且第三个为swap分区类型;(提示将分区命令,echo给fdisk 即可实现)

题目分析:

  1.如何创建分区?(fdisk mke2fs -j mount挂载

  2.分析不同类型下的选择:

     选择正确

   其他选择

  解决办法: 运用until、for分类

 


第一次脚本执行结果:



错误分析

  利用bash -x ./314.sh ,一步一步分析步骤,发现是在创建磁盘分区时,给定设备号后,遗漏了“回车”操作。

  还有就是,开始全局定义操作只用了 “CHOICE”,导致后面partprobe、mke2fs、fdisk仍沿用了上一个操作“Y|N”


解决方法

  将代码:2

          +50M

 改成     2


          +50M

将前面选择硬盘的过程所定义的变量 ‘CHOICE’,改为‘DISK’。



最后附上纠正后,代码执行结果:




代码附上:



总结下今天的收获:

 1:了解了创建一个磁盘分区的过程,也懂得了怎么移除一个新建的分区

 2:熟悉了脚本执行中的逻辑关系

 3:加深了对until、for循环的认识

 4:学习了给vim编辑器内容显示行号。——:setnumber










                   


  

返回开发技术教程...