【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 #格式化交换分区