centosスクリプト基礎練習9


練習1は、pingコマンドによって192.168.0.151から192.168.0.254までのすべてのホストがオンラインであるかどうかをテストするスクリプトを書きます.オンラインであれば「ip is up.」と表示され、その中のIPは本当のIPアドレスに変えて、しかも緑色で表示します;オンラインでない場合は「ip is down」と表示されます.その中のIPは本物のIPアドレスに交換され、赤色で表示される.要件:while,until,forループをそれぞれ使用して実現します.while [root@localhost mscripts]# cat lx31*#!/bin/bashSTRING="172.16.99."declare -i I=0while [ $I -le 19 ]; dolet I+=1ping -i 1 -c 1 $STRING$I &>/dev/nullRTU=$?if [ $RTU -eq 0 ]; thenecho "$STRING$I is up."elseecho "$STRING$I is down."fidone //until #!/bin/bashSTRING="172.16.99."declare -i I=0until [ $I -gt 19 ]; dolet I+=1ping -i 1 -c 1 $STRING$I &>/dev/nullRTU=$?if [ $RTU -eq 0 ]; thenecho "$STRING$I is up."elseecho "$STRING$I is down."fidone`//for文ループ`#!/bin/bashSTRING="172.16.99."for I in {1..20}; doping -i 1 -c 1 $STRING$I &>/dev/nullRTU=$?if [ $RTU -eq 0 ]; thenecho "$STRING$I is up."elseecho "$STRING$I is down."fidone練習2スクリプトを書きます(前提:仮想マシンにハードディスクを追加し、/dev/sdbと仮定します)、指定したハードディスクにパーティションを作成します.1、現在のシステム上のすべてのディスクをリストし、ユーザーに選択させ、qを選択するとスクリプトを終了させる.ユーザーの選択が間違っている場合は、ユーザーに再選択させます.2、ユーザーが選択した後、ユーザーに次の操作がデータを破損する可能性があることを確認するように注意し、ユーザーに確認してもらう.ユーザがyを選択して続行すると、nは終了する.そうでなければ、ユーザーに再選択させます.3、そのハードディスク上のすべてのパーティションを消去し(ヒント、moがすべてのパーティションを除去した後syncコマンドを実行)、スクリプトを2秒睡眠させてからパーティション化する.3つのプライマリパーティションを作成し、1つ目は20 M、2つ目は512 M、3つ目は128 M、3つ目はswapパーティションタイプである.(echoを介してfdiskにパーティションコマンドを渡すようにヒントを与える).
cat lx32.sh #!/bin/bashecho "Format a disk."echo -e "\033[31mWarning! Attention please.\033[0m"fdisk -l 2>/dev/null | grep -o "Disk/dev/[sh]d[a-z]"read -p "Please input your choice:"CDISKif [ $CDISK = 'quit' ]; thenecho "quit..."exit 7fiuntil fdisk -l 2>/dev/null | grep -o "Disk/dev/[sh]d[a-z]"| grep "Disk $CDISK"&>/dev/null; doread -p "Wrong option! Please again input your choice:"CDISKdone read -p "Will destory your disk, continue ?:"CHOICEuntil [ $CHOICE = 'y' -o $CHOICE = 'n' ]; doread -p "Will destory your disk, continue ?:"CHOICEdoneif [ $CHOICE = 'n' ]; thenecho "quit.."exit 9elsedd if=/dev/zero of=$CDISK bc=512 count=1syncsleep 3echo 'np1
+20Mnp2
+512Mnp3
+128Mt382w' | fdisk $CDISK &>/dev/nullpartprobe $CDISKmke2fs -j ${CDISK}1mke2fs -j ${CDISK}2mkswap ${CDISK}3fi