字符串截取

  1. VAR='hello world!'
  2. echo ${#VAR} #计算字符串的长度
  3. echo ${VAR:0:5} #截取 wo 字符
  4. echo ${VAR:5} #截取 world!字符串
  5. echo ${VAR:(-1)} #截取最后一个字符
  6. echo ${VAR:(-2)} #截取最后二个字符
  7. echo ${VAR:(-3):2} #截取从倒数第 3 个字符后的 2 个字符

替换字符串

  1. VAR='hello world world!'
  2. echo ${VAR/world/WORLD} #只将第一个 world 字符串替换为 WORLD
  3. echo ${VAR//world/WORLD} #将全部 world 字符串替换为 WORLD
  4. VAR=123abc
  5. echo ${VAR//[^0-9]/} #替换abc为空
  6. echo ${VAR//[0-9]/} #替换123为空

变量赋值

  1. # echo ${VAR:-'hello world!'}
  2. hello world!
  3. 如果变量不为空就返回 hello world!: # VAR="hello"
  4. # echo ${VAR:+'hello world!'}
  5. hello world!
  6. 如果变量为空就重新赋值:
  7. # VAR=
  8. # echo ${VAR:=hello}
  9. hello
  10. # echo $VAR
  11. hello
  12. 如果变量为空就将信息输出 stderr # VAR=
  13. # echo ${VAR:?value is null}
  14. -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 # 恢复终端默认颜色,即取消颜色设置。

  1. echo -e "\033[31mError: 安装失败!\033[0m"
  2. echo -e "\033[32mSusses: 安装成功!\033[0m"
  3. echo -e "\033[36mInfo: 重启可以解决99%的问题!\033[0m"
  1. OLD_IFS=$IFS
  2. IFS=":"
  3. for i in $(head -1 /etc/passwd); do
  4. echo $i
  5. done
  6. IFS=$OLD_IFS # 恢复默认值

瓦雀