字符串截取
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 字符串替换为 WORLDecho ${VAR//world/WORLD} #将全部 world 字符串替换为 WORLDVAR=123abcecho ${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 $VARhello如果变量为空就将信息输出 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=$IFSIFS=":"for i in $(head -1 /etc/passwd); doecho $idoneIFS=$OLD_IFS # 恢复默认值
