【Shell】Linux中分区脚本

后天要中期答辩了,今天只刷了一个题,还没写出来,但是想更新博客,所以只有把之前写的东西贴出来了。

一个用于分区的shell脚本

 1 #!/bin/bash                            #指定脚本解释器路径
 2 echo "initial a disk……"
 3 echo -e "\033[31mWarning!:\033[0m"     #提醒用户危险操作
 4     
 5 fdisk -l 2> /dev/null | grep -o "disk /dev/[sh]d[a-z]" #显示所有分区
 6 
 7 read -p "your choice:" partdisk    #读入要操作的分区
 8 
 9 if [ $partdisk == "quit" ];then
10     echo "quit"
11     exit 7                  #错误退出,非0
12 fi
13 
14 until fdisk -l 2> /dev/null | grep -o "disk /dev/[sh]d[a-z]" | grep "disk $partdisk$" &> /dev/null;do
15     read -p "wrong option,your choice:"partdisk
16 done
17 
18 read -p"are you sure?" choice
19 
20 until [ $choice=='y' -o $choice =='n'];do
21     read choice
22 done 
23 
24 if [$choice = n ];then
25     exit 0
26 else
27     dd if=/dev/zero of=$partdisk bs=512 count =1          #从设备/dev/zero输出0覆盖所在磁盘的第一个扇区,删除所有分区
28     sync
29     ##删除所有分区
30     echo "partion"        ###
31     sleep 3            #
32     echo 'n                    #32-45行echo的内容,和命令行中操作步骤一样
33     p                          #
34     1                          #
35                                #
36     +20M                       #
37     n                          #
38     p                          #
39     3                          #
40     
41     +128M
42     t 
43     3
44     82
45     w'|fdisk $partition &>/dev/null      #返回消息送入/dev/null 设备
46     sync
47     partprobe $partdisk                  #写入硬盘
48     sync
49     sleep 3                             #同步内容花费时间较长,休眠3s否则下面格式化命令无法执行
50     mke2fs -j ${partdisk}1 &>/dev/null   
51     mke2fs -j ${partdisk}2 &>/dev/null    #格式化分区,消息送入/dev/null
52     mkswap ${partdisk}3&>/dev/null        #格式化交换分区

 

posted @ 2016-12-12 23:41  wilderness  阅读(1737)  评论(0编辑  收藏  举报