centos 基础脚本练习12

练习1 写一个脚本 用函数的方法
通过ping 命令测试192.168.0.151 到192.168.0.254 之前的所有主机是否在线。 如果在线,就显示"ip is up.",其中的IP要换为真正的IP地址,且以绿色显示;如果不在线,就显示“ip is down。”,其中的IP更换为真正的IP地址,且以红色显示;
[root@localhost mscripts]# cat lx37.sh lx37b.sh lx37c.sh
#!/bin/bash
function ONLINE {
ping -c 1 -W 1 $1
}
for I in {1..10}; do
if ONLINE 172.16.99.$I &> /dev/null; then
echo "172.16.99.$I up."
else
echo "172.16.99.$I down."
fi
done
///
#!/bin/bash
function ONLINE {
if ping -c 1 -W 1 $1 &> /dev/null; then
echo "$1 up."
else
echo "$1 down."
fi
}

for I in {1..10}; do
ONLINE 172.16.99.$I
done

#!/bin/bash
function ONLINE {
if ping -c 1 -W 1 $1 &> /dev/null; then
return 0
else
return 1
fi
}

for I in {1..10}; do
ONLINE 172.16.99.$I
if [ $? = 0 ]; then
echo -e "\033[32m172.16.99.$I up.\033[0m"
else
echo -e "\033[31m172.16.99.$I down.\033[0m"
fi
done
练习2 写一个脚本 使用函数完成
1, 函数能够接受一个参数,参数为用户名;
判断用户是否存在
如果存在,就返回此用户的shell 和UID; 并返回正常状态值;
如果不存在,就说此用户不存在;并返回错误值;
2, 在主程序中调用函数;
[root@localhost mscripts]# cat lx38.sh
#!/bin/bash
USERNAME () {
if id $1 &> /dev/unll; then
id -u $1
cat /etc/passwd | grep "$1" | awk -F: '{print $7}'
return 0
else
return 2
fi
}

if [ $? -eq 0 ]; then
USERNAME bruce
else
USERNAME bruce
fi

    扩展1: 在主程序中,让用户自己输入用户名后,传递给函数来进行判断;

    [root@localhost mscripts]# cat lx38b.sh

#!/bin/bash
USERNAME () {
if id -u $1 &> /dev/null; then
return 0
else
return 1
fi
}
read -p "Please input a user:" USERS
USERNAME $USERS
if [ $? = 0 ]; then
id -u $USERS
grep "$USERS" /etc/passwd | awk -F: '{print $7}'
else
echo "$USERS not exist."
fi

    扩展2: 在主程序中, 输入用户名判断后不退出脚本,而是提示用户继续输入下一个用户名;但如果用户输入的是Q或者q就退出;

    [root@localhost mscripts]# cat lx38c.sh

#!/bin/bash
USERNAME () {
if id -u $1 &> /dev/null; then
return 0
else
return 1
fi
}
read -p "Please input a user:" USERS
#USERNAME $USERS
while :; do
case $USERS in
q|Q)
echo "quit.."
exit 7
;;
*)
USERNAME $USERS
if [ $? = 0 ]; then
id -u $USERS
grep "$USERS" /etc/passwd | awk -F: '{print $7}'
else
echo "$USERS not exist."
fi
;;
esac
read -p "Please input a user again:" USERS
done

转载于:https://blog.51cto.com/ahtao/2055537

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值