本文共 2042 字,大约阅读时间需要 6 分钟。
练习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秒后再分区;并为其创建三个主分区,第一个为20M,第二个为512M,第三个为128M,且第三个为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+20M
np2+512M
np3+128M
t382w' | fdisk $CDISK &> /dev/nullpartprobe $CDISKmke2fs -j ${CDISK}1mke2fs -j ${CDISK}2mkswap ${CDISK}3fi转载于:https://blog.51cto.com/ahtao/2052873