Bash echo 高阶用法

Bash echo 高阶用法

最基础的使用

输出字符串

$ echo hello hello $

输出变量

$ echo $SHELL /bin/zsh $

输出命令结果

$ echo `pwd` /root $

不换行-n

$ echo -n hello hello$

注意这里输出的hello和提示符连在了一起,因为没有换行。

$ echo -n "hello "; echo shell hello shell $

转义-e

在用echo输出字符串的时候可以使用控制字符来做一些特殊处理

具体用法:

$ echo -e "hello\c" hello$

这里的\c就是特殊控制字符,表示不换行,也就是和echo -n差不多的效果。

\b

退格控制符

$ echo -e "hello\bworld" hellworld $

并且在后面跟有字符的情况下才有退格效果

$ echo -e "hello\b" hello $

\c

不换行输出,\c后的字符不会被打印。

$ echo -e "hello\cworld" hello$

\c在字符串最后时,其作用相当于echo -n

$ echo -e "hello\c" hello$

\n

换行符

$ echo -e "hello\nworld" hello world $

\t

tab制表符

$ echo -e "hello\tworld" hello world $

\r

回车符,但是\r前面的字符不会显示

$ echo -e "hello\rworld" world $

\v

垂直制表符

$ echo -e "hello\vworld\vbash" hello world bash $

\a

电脑会发出警报声

$ echo -e "\adududu" dududu $

原文输出

不做任何转义,变量替换操作

$ echo '$SHELL\\b' $SHELL\\b $

使用单引号将字符串括起来,字符串里不能出现单引号。

输出彩色字符

使用echo -e不仅可以使用特殊字符,还可以控制终端显示颜色。
具体用法:

echo -e "\033[0;34m蓝色"

这里的\033[0;34m就是控制终端输出字符为蓝色的意思。

效果:

bash.png
可以看到,不仅输出字符,连提示符都变色了。如果只想改变某个词的颜色怎么办呢。
我们需要在改变颜色输出后再把颜色去掉。

echo -e "\033[0;34m蓝色\033[0m"

这里的\033[0m就是无颜色的控制字符。

以下是常用颜色:

NOCOLOR='\033[0m' RED='\033[0;31m' GREEN='\033[0;32m' ORANGE='\033[0;33m' BLUE='\033[0;34m' PURPLE='\033[0;35m' CYAN='\033[0;36m' LIGHTGRAY='\033[0;37m' DARKGRAY='\033[1;30m' LIGHTRED='\033[1;31m' LIGHTGREEN='\033[1;32m' YELLOW='\033[1;33m' LIGHTBLUE='\033[1;34m' LIGHTPURPLE='\033[1;35m' LIGHTCYAN='\033[1;36m' WHITE='\033[1;37m'

为了方便和易读我们可以将颜色先存为环境变量,然后再使用变量:

$ echo -e "${RED}红色${NOCOLOR}"

效果图:

bash.png

上一篇 Vue3有哪些不向下兼容的改变
下一篇 精细控制transition细节 - 实现一个活泼的弹框