--作者:飞翔的小胖猪

--创建时间:2021年2月19日

1.1 基础用法

echo命令用来输出文本,在shell脚本中用来输出提示信息用的比较多。

单引号:原样输出所有的内容,不用转义就能输出特殊字符。需要调用变量时不要使用单引号

如使用echo修改操作系统密码时一定要用单引号

[root@135 ~]# echo '\\'
#修改root密码,修改密码时一定要用单引号,避免特殊字符造成的密码不一致。
[root@135 ~]# echo 'yinsi' | passwd --stdin root

双引号:双引号保留输出文本中特殊字符的含义,如需要输出特殊字符本身需要使用转义符。

[root@135 ~]# echo "\\"

常用参数:

[root@135 echo_study]# echo -[e|E|n]
-n 不换行输出
-e 启用反斜杠转义的解释
-E 禁用反斜杠转义的解释(默认)

常用转义符:使用转义符的时候需要跟上-e选项。

\b   转义后相当于按退格键(backspace) ,但前提是”\b”后面存在字符;
\c 不换行输出,在”\c”后面不存在字符的情况下,作用相当于echo -n;
\n 换行;
\f 换行,但是换行后的新行的开头位置连接着上一行的行尾,具体效果查看示例;
\v 与\f相同;
\t 转以后表示插入tab,即制表符,已经在上面举过例子;
\r 光标移至行首,但不换行,相当于使用”\r”以后的字符覆盖”\r”之前同等长度的字符,只看这段文字描述的话可能不容易理解,具体效果查看示例;
\\ 表示插入”\”本身;
[root@135 echo_study]# aa="test11"
[root@135 echo_study]# bb="test22"
[root@135 echo_study]# echo -e '$aa\t$bb\n$aa $bb'
[root@135 echo_study]# echo -e "$aa\t$bb\n$aa $bb"

1.2 高级用法

使用高级用法时必须加上\033[或\e[,确认不使用特殊属性后及时清除设置的属性,切记!切记!切记!

1.2.1 属性

\033[0m      关闭所有属性
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH 设置光标位置,y表示行数,x表示从第几个字符开始
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标

例子:

为test添加下划线,\033[0m表示取消下划线,如果不使用\033[0m取消特殊属性,该终端输出的所有信息都会带下划线。

#只有test有下划线
[root@135 echo_study]# echo -e "\033[4mtest\033[0m"

#test后所有输出都有下划线
[root@135 echo_study]# echo -e "\033[4mtest"

设置字符显示在特定的位置,先使用\033[2J清空屏幕,然后设置从第10行第5个字符开始输出test字符。

[root@135 ~]# echo -e "\033[2J\033[10;5Htest"

1.2.2 颜色

echo可以为字体和背景设置颜色。字体和背景均提供有8种颜色。

字体颜色和背景颜色的区分是字体开头数字为3,背景开头数字为4

字体颜色

\033[30m   (黑色)
\033[31m (红色)
\033[32m (绿色)
\033[33m (黄色)
\033[34m (蓝色)
\033[35m (紫红色)
\033[36m (青色)
\033[37m (白色)

背景颜色

\033[40m   (黑色)
\033[41m (红色)
\033[42m (绿色)
\033[43m (黄色)
\033[44m (蓝色)
\033[45m (紫红色)
\033[46m (青色)
\033[47m (白色)

例子:

#设置test字体颜色为红色、背景颜色为青色。
[root@135 ~]# echo -e "\033[31mtest\033[46m"

#取消当前终端设置的所有的特殊属性,回到默认状态。
[root@135 ~]# echo -e "\033[0m"

shell中echo基础及高级用法详解-渐入佳境的更多相关文章

  1. Python中第三方库Requests库的高级用法详解

    Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...

  2. 教程-Delphi中Spcomm使用属性及用法详解

    Delphi中Spcomm使用属性及用法详解 Delphi是一种具有 功能强大.简便易用和代码执行速度快等优点的可视化快速应用开发工具,它在构架企业信息系统方面发挥着越来越重要的作用,许多程序员愿意选 ...

  3. js数组中foEach和map的用法详解 jq中的$.each和$.map

    数组中foEach和map的用法详解 相同点: 1.都是循环遍历数组(仅仅是数组)中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项value, ...

  4. centos中crontab(计时器)用法详解

    关于crontab: crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行.该 ...

  5. PHP switch的“高级”用法详解

    只所以称为“高级”用法,是因为我连switch的最基础的用法都还没有掌握,so,接下来讲的其实还是它的基础用法! switch 语句和具有同样表达式的一系列的 IF 语句相似.很多场合下需要把同一个变 ...

  6. oracle中的exists 和 in 用法详解

    以前一直不知道exists和in的用法与效率,这次的项目中需要用到,所以自己研究了一下.下面是我举两个例子说明两者之间的效率问题. 前言概述: “exists”和“in”的效率问题,涉及到效率问题也就 ...

  7. TypeScript高级用法详解

    引言 作为一门强大的静态类型检查工具,如今在许多中大型应用程序以及流行的JS库中均能看到TypeScript的身影.JS作为一门弱类型语言,在我们写代码的过程中稍不留神便会修改掉变量的类型,从而导致一 ...

  8. Apache中的Order Allow,Deny用法详解

    本文讲述了Apache中的Order Allow,Deny用法.分享给大家供大家参考,具体如下: Allow和Deny可以用于apache的conf文件或者.htaccess文件中(配合Directo ...

  9. jQuery动画高级用法——详解animation中的.queue()函数

    http://www.cnblogs.com/zhwl/p/4328279.html $('#object').hide('slow').queue(function(next){     $(thi ...

随机推荐

  1. kubernetes之kubeadm 安装kubernetes 高可用集群

    1. 架构信息 系统版本:CentOS 7.6 内核:3.10.0-957.el7.x86_64 Kubernetes: v1.14.1 Docker-ce: 18.09.5 推荐硬件配置:4核8G ...

  2. [luogu P1312]Mayan游戏

    其实就是一道锻炼码力的简单题-- 看到题目中的\(0<x\leqslant 5\)也就知道是爆搜了吧( 我们仿照写游戏的方法多写几个函数,能够有效降低错误率(确信 我们写出大致的搜索流程来: 如 ...

  3. ICLR2021对比学习(Contrastive Learning)NLP领域论文进展梳理

    本文首发于微信公众号「对白的算法屋」,来一起学AI叭 大家好,卷王们and懂王们好,我是对白. 本次我挑选了ICLR2021中NLP领域下的六篇文章进行解读,包含了文本生成.自然语言理解.预训练语言模 ...

  4. CF 1394 简要题解

    最近都会做一些 \(\rm Div1\) 套题中 \(3000\) 分以下的题目. A 直接枚举贪心即可. B 首先不难发现总共可能的 \(c\) 序列只有 \(k!\) 种,很明显要暴力枚举所有情况 ...

  5. tomcat启用apr需要的三个组件(缺少可能会报错)

    tomcat8开始支持Apr,可以提升IO性能,但若配置了使用Apr,如下图所示,则需要安装apr和aprutil和tomcat-native 如果采用nio的方式,则配置可以改成protocol=& ...

  6. iOS,蓝牙开发!!--By帮雷

    iOS的蓝牙开发大致有以下几种方式. 1 GameKit.framework [只能存在于iOS设备之间,多用于游戏 能搜索到的demo比较多,不确切说名字了,code4app里面就有] 2 Core ...

  7. 私有化轻量级持续集成部署方案--02-Nginx网关服务

    提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 这一篇中使用 Nginx 部署网关中心,用来代理服务器中服务.网关中心有优点也有缺点,也可以不采用网关系统. 部署 ...

  8. 使用VMware安装win10虚拟机

    (1)打开VMware: (2)打开左上角的文件,点击新建虚拟机: (3)选择典型,下一步: (4)选择稍后安装操作系统,下一步: (5)选择win10×64,下一步: (6)可随意修改虚拟机名称,位 ...

  9. Python解释器安装、多版本共存以及手动添加环境变量教程

    Python解释器安装.多版本共存以及手动添加环境变量教程 一.Python解释器下载 1. 先进入官网(python.org) 下图为网站的主页,依次按顺序点击"①Download&quo ...

  10. Solution -「CEOI 2017」「洛谷 P4654」Mousetrap

    \(\mathscr{Description}\)   Link.   在一个含 \(n\) 个结点的树形迷宫中,迷宫管理者菈米莉丝和一只老鼠博弈.老鼠初始时在结点 \(y\),有且仅有结点 \(x\ ...