shell脚本实战-1

君不见长松卧壑困风霜,时来屹立扶明堂。这篇文章主要讲述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

#!/bin/bash
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失败
#!/bin/bash
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

【shell脚本实战-1】要注意即便把continue写到函数里,也可以继续函数外的下一次循环的用法。这个for循环里的调用函数用的很巧妙,函数调用三次,ping成功不会执行三次,执行失败才会执行三次。

    推荐阅读