shell脚本实战-1
Posted 喝茶等下班
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本实战-1相关的知识,希望对你有一定的参考价值。
有两个命令能帮助我调试脚本:set -e 遇到执行非 0 时退出脚本,set -x 打印执行过程。
1.
获取8位随机字符串或数字:
获取8位字符串,三种方法
[root@study ~]# echo $RANDOM |md5sum|cut -c 1-8
679359fe
[root@study ~]# openssl rand -base64 4
ertU+Q==
[root@study ~]# cat /proc/sys/kernel/random/uuid |cut -c 1-8
749ffce5
获取8位数字,三种方法
[root@study ~]# echo $RANDOM |cksum |cut -c 1-8
14713720
[root@study ~]# openssl rand -base64 4|cksum|cut -c 1-8
35648508
[root@study ~]# date +%N|cut -c 1-8
30114052
cksum:打印CRC效验和统计字节
#这样就是秒+纳秒的输出
date +%s%N
2.
定义一个颜色输出字符串函数
[root@study ~]# ./echo_color.sh red "abc"
abc
[root@study ~]# ./echo_color.sh green "abc"
abc
[root@study ~]# vim echo_color.sh
function echo_color
case $1 in
green)
echo -e "\\033[32;40m$2\\033[0m"
;;
red)
echo -e "\\033[31;40m$2\\033[0m"
;;
*)
echo "Example: echo_color red string"
esac
echo_color $*
3.
检查主机存活状态
方法3:利用for循环将ping通就跳出循环继续,如果不跳出就会走到打印ping失败
ping_success_status()
if ping -c 1 $IP > /dev/null; then
echo "$IP Ping is successful."
continue
fi
IP_LIST="192.168.31.1 192.168.31.88 192.168.31.3"
for IP in $IP_LIST; do
ping_success_status
ping_success_status
ping_success_status
echo "$IP Ping is failure!"
done
要注意即便把continue写到函数里,也可以继续函数外的下一次循环的用法。这个for循环里的调用函数用的很巧妙,函数调用三次,ping成功不会执行三次,执行失败才会执行三次。
以上是关于shell脚本实战-1的主要内容,如果未能解决你的问题,请参考以下文章