此脚本未经过测试,可能会有一些语法错误,同时 执行此脚本会有一定的危险,不建议在生产环境下使用,除非你非常明白此脚本每一个指令的作用!!!(语法可能有错误 ,但思路肯定是正确的) #!/bin/bash #first file: #first filename:Auto_fdisk.sh #usg: sh Auto_fdisk.sh /dev/* if rpm -q expect;then : else yum install -y expect [ $? -ne 0 ]&&(echo "Install expect failed ,please do that by yourself !!" ;exit 1) fi Make_Fs(){ for ((i=1;i<=2;i++)) do mkfs -t ext3 $1 [ $? -ne 0 ]&&return 69 done } function Auto_Fdisk(){ Device_List=`fdisk -l | grep "Disk /dev/" |awk '{print $2}'|tr -d ':'` Judge=`echo $Device_List|grep $1` [ -z $Judge ]&&(echo "The device doesn't exit!!";exit 1) dd if=/dev/zero of=/dev/$1 bs=512 count=1 [ $? -ne 0 ]&&return 67 expect ./Auto_fdisk.exp $1 [ $? -ne 0]$$return 68 partprobe Make_Fs $1 } echo "=======================================================================" echo "Watch out!!!" echo " if you do that ,all your date in the device you have just inputed will lost,\ So you must be sure what you are doing !!!!!!!!!" echo "=======================================================================" read -t 10 -p "Go on ?(y|n):" Choice case $Choice in y|Y|yes) Auto_Fdisk $1 case $? in 0) echo "Succesfully .....";; 1) echo "Failed....";; 67) echo "dd failed !!!!";; 68) echo "Create disk partitions failed!!!!";; 69) echo "Make file system exit 3 failed!!!!";; esac ;; *) exit 0;; esac
#second file: #second filename: Auto_fdisk.exp set Device [lindex $argv 0] spawn fdisk $Device expect "Command (m for help):" send "n\r" send "p\r" expect "Partition number (1-4):" send "1\r" expect "):" send "\r" expect "):" send "+100M\r" expect "Command (m for help):" send "n\r" send "p\r" expect "Partition number (1-4):" send "2\r" expect "):" send "\r" expect "):" send "+1G\r" expect "Command (m for help):" send "w" expect eof
|