随机显示字体颜色
[root@wenzi data]#vim randomColor.sh
#!/bin/bash
txt=wenzi
echo -e "\033[1;$[RANDOM%7+31]m$txt\033[0m"
获取随机8位字符串
[root@wenzi wenzi]# echo $RANDOM | md5sum | cut -c 1-8
2fdc98bb
[root@wenzi ~]$openssl rand -base64 9
oe5iZjluhy9o
[root@wenzi ~]$cat /proc/sys/kernel/random/uuid | cut -c 1-8
b2c6129b
说明:
cut -c 仅显示行中指定范围的字符
定义一个颜色输出字符串函数
[root@wenzi wenzi]# cat test.sh
#!/bin/bash
function echo_color() {
if [ $1 == "red" ];then
echo -e "\033[31;40m$2\033[0m"
elif [ $1 == "green" ];then
echo -e "\033[32;40m$2\033[0m"
fi
}
echo_color $1 $2
将结果分别赋值给变量
一、
[root@wenzi wenzi]# cat test.sh
#!/bin/bash
str="echo Hello, World!"
eval $str
[root@wenzi wenzi]# ./test.sh
Hello, World!
二、
[root@wenzi wenzi]# cat test.sh
#!/bin/bash
for i in {1..3}; do
eval a$i=$i
echo "$a$i"
echo ">>> $a1 $a2 $a3"
done
[root@wenzi wenzi]# ./test.sh
1
>>> 1
2
>>> 1 2
3
>>> 1 2 3
三、
[root@wenzi wenzi]# cat test.sh
#!/bin/bash
num=0
for i in `eval echo $*`;do
let num+=1
eval node${num}="$i"
done
echo $node1 $node2 $node3
[root@wenzi wenzi]# ./test.sh 192.168.28.1{1..2}
192.168.28.11 192.168.28.12
说明:
eval命令用于执行字符串中的命令,并将其结果作为Shell命令执行
打印彩虹
#!/bin/bash
declare -a ary
for i in `seq 40 49`;do
ary[$i]=" "
echo -en "\e[$i;5m ${ary[@]}\e[;0m"
done
declare -a ary
for s in `seq 1 10000`;do
for i in `seq 40 49`;do
ary[$i]=" "
echo -en "\e[$i;5m ${ary[@]}\e[;0m"
done
done
打印菱形
#!/bin/bash
for (( i = 1; i < 12; i++));do
if [ $i -le 6 ];then
for ((j = $((12-i)); j > i; j--));do
echo -n " "
done
for ((m = 1; m <= $((2*i-1)); m++));do
echo -n "* "
done
echo ""
elif [ $i -gt 6 ];then
n=$((12-i))
for ((j = $((12-n)); j > n; j--));do
echo -n " "
done
for ((m = 1; m <= $((2*n-1)); m++));do
echo -n "* "
done
echo ""
fi
done
显示进度条
#!/bin/bash
i=0
bar=''
index=0
arr=( "|" "/" "-" "\\" )
while [ $i -le 100 ];do
let index=index%4
printf "[%-100s][%d%%][\e[43;46;1m%c\e[0m]\r" "$bar" "$i" "${arr[$index]}"
let i++
let index++
sleep 0.2
bar+='#'
clear
done
printf "\n"