字符串截取
VAR='hello world!'
echo ${#VAR} #计算字符串的长度
echo ${VAR:0:5} #截取 wo 字符
echo ${VAR:5} #截取 world!字符串
echo ${VAR:(-1)} #截取最后一个字符
echo ${VAR:(-2)} #截取最后二个字符
echo ${VAR:(-3):2} #截取从倒数第 3 个字符后的 2 个字符
替换字符串
VAR='hello world world!'
echo ${VAR/world/WORLD} #只将第一个 world 字符串替换为 WORLD
echo ${VAR//world/WORLD} #将全部 world 字符串替换为 WORLD
VAR=123abc
echo ${VAR//[^0-9]/} #替换abc为空
echo ${VAR//[0-9]/} #替换123为空
变量赋值
# echo ${VAR:-'hello world!'}
hello world!
如果变量不为空就返回 hello world!: # VAR="hello"
# echo ${VAR:+'hello world!'}
hello world!
如果变量为空就重新赋值:
# VAR=
# echo ${VAR:=hello}
hello
# echo $VAR
hello
如果变量为空就将信息输出 stderr: # VAR=
# echo ${VAR:?value is null}
-bash: VAR: value is null
字符串颜色
再介绍下字符串输出颜色,有时候关键地方需要醒目,颜色是最好的方式:
字体颜色 | 字体背景颜色 | 显示方式 |
---|---|---|
30:黑 31:红 32:绿 33:黄 34:蓝色 35:紫色 36:深绿 37:白色 |
40:黑 41:深红 42:绿 43:黄色 44:蓝色 45:紫色 46:深绿 47:白色 |
0:终端默认设置 1:高亮显示 4:下划线 5:闪烁 7:反白显示 8:隐藏 |
格式:
\033[1;31;40m
# 1 是显示方式,可选。31 是字体颜色。40m 是字体背景颜色。
\033[0m
# 恢复终端默认颜色,即取消颜色设置。
echo -e "\033[31mError: 安装失败!\033[0m"
echo -e "\033[32mSusses: 安装成功!\033[0m"
echo -e "\033[36mInfo: 重启可以解决99%的问题!\033[0m"
OLD_IFS=$IFS
IFS=":"
for i in $(head -1 /etc/passwd); do
echo $i
done
IFS=$OLD_IFS # 恢复默认值