常用命令 - echo
echo 用于字符串的输出(类似控制台打印)
echo [选项] [字符串]
选项:
- -E 不支持转义,默认
- -n 不自动换行
- -e 支持转义
echo 常见的几种用法
输出普通字符串或变量的值
[root@centos8 ~]#echo "bash is base linux!"
bash is base linux!
[root@centos8 ~]#echo $HOSTNAME
centos8.xiaodan
[root@centos8 ~]#echo "$HOSTNAME" #用变量值替换,弱引用
centos8.xiaodan
[root@centos8 ~]#echo '$HOSTNAME' #原样输入字符串,强引用
$HOSTNAME
[root@centos8 ~]#echo `$HOSTNAME` #将引号中的字符串当做命令执行,然后输入执行的结果
bash: centos8.xiaodan: command not found...
总结:
单引号:六亲不认,变量和命令都不识别,都当成了普通的字符串
反向单引号:变量和命令都识别,并且会将反向单引号的内容当成命令进行执行后,再交给调用反向单引号的
命令继续
双引号:不能识别命令,可以识别变量
赋值计算
echo a=$((2413027/3600/24))
转义输出文本
若echo 输出的字符串中出现以下字符,则会转义,不会当做实际含义文本输出
\b 退格键,删除 \b
的前一个字符
[root@centos8 ~]#echo -e "bash \bis \bbase \blinux! "
bashisbaselinux!
\n 换行符,\n
后的字符换行
[root@centos8 ~]#echo -e "bash \nis \nbase \nlinux! "
bash
is
base
linux!
\t 制表符
[root@centos8 ~]#echo -e "bash\t is \tbase \tlinux! "
bash is base linux!
\v 垂直制表符
[root@centos8 ~]#echo -e "bash \vis \vbase \vlinux! "
bash
is
base
linux!
\e 相当于 \033,比如环境变量$PS1 控制格式会用到,后会详细介绍带颜色或其他格式的文本输入
其他的一些用法
\a 发出警告声
\r 回车,即光标移至行首,但不换行
\\ 转义为 \ 字符
\0nnn 插入nnn(八进制)所代表的ASCII字符
\xHH 插入HH(十六进制)所代表的ASCII数字(man 7 ascii)
echo 字符串带颜色输出
echo显示带颜色,需要使用选项 -e
格式如下:
echo -e "\033[1;F;Bm字符串\033[0m"
其中,\033
可用\e
代替,1 高亮显示,编号有0、1、4、5、7、8
F 字体颜色,编号30~37;B 字体背景颜色,编号40~47。
三者之间用 ;
隔开,以 m
结尾,不分前后顺序。\033[0m
表示关闭格式输出。例如:
[root@centos8 ~]#echo -e "\033[1;37;41m高亮显示的红底白字\033[0m"
F 字体颜色 | B 字体背景颜色 | 数字其他格式 |
---|---|---|
30 黑 | 40 黑 | 0 关闭所有属性 |
31 红 | 41 红 | 1 高亮显示 |
32 绿 | 42 绿 | 4 下划线 |
33 黄 | 43 黄 | 5 闪烁 |
34 蓝 | 44 蓝 | 7 反显 |
35 紫 | 45 紫 | 8 消隐 |
36 天蓝 | 46 天蓝 | |
37 白 | 47 白 |
echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 红底白字 \033[0m"
echo -e "\033[42;37m 绿底白字 \033[0m"
echo -e "\033[43;37m 黄底白字 \033[0m"
echo -e "\033[44;37m 蓝底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天蓝底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"
其他控制选项说明
\33[nA 光标上移n行
\33[nB 光标下移n行
\33[nC 光标右移n行
\33[nD 光标左移n行
\33[y;xH设置光标位置
\33[2J 清屏
\33[K 清除从光标到行尾的内容
\33[s 保存光标位置
\33[u 恢复光标位置
\33[?25l 隐藏光标
\33[?25h 显示光标