Linux echo文本处理命令的使用及示例
作者:李欢欢 发布时间:2023-07-09 05:49:06
标签:Linux,echo
echo 在linux帮助文档的描述是显示一行文本,类似于python和java等编程语言中的print语句,实际上它的作用不仅仅如此。可以使用man echo查看详细的参数说明。
echo命令用于输出指定的字符串,常见用法如下:
[root@localhost ~]$ echo # 输出一个空白行
[root@localhost ~]$ echo "hello world" # 输出指定的字符串
[root@localhost ~]$ echo $HOSTNAME # 输出变量名对应的值
[root@localhost ~]$ echo "hello world" > 1.txt # 输出字符串到指定文件
[root@localhost ~]$ echo `date` # 输出命令的执行结果
常用参数:
[root@localhost ~]$ echo -n "hello world" # -n 不在末尾输出换行符,默认会在末尾输出换行符
hello world[root@localhost ~]$
[root@localhost ~]$ echo -e "hello\nworld" # -e 用于启用反斜杠转义,如 \n 会转换成换行
hello
world
[root@localhost ~]$ echo -E "hello\nworld" # -E 用于禁用反斜杠转义,默认就是禁用
hello\nworld
常用转义符:
[root@localhost ~]$ echo -e "hello \\ world" # \\ 用于输出反斜杠
hello \ world
[root@localhost ~]$ echo -e "\a" # \a 用于响铃,发出声音的响铃哦
[root@localhost ~]$ echo -e "hello\bworld" # \b 用于退格,参考:https://blog.csdn.net/lucosax/article/details/34963593
hellworld
[root@localhost ~]$ echo -e "hello \c world" # \c 使用该转义符后,\c 后面的字符不再输出
hello
[root@localhost ~]$ echo -e "\e[32;1m hello world \e[35;1m" # \e 用于控制字体和背景颜色
hello world
[root@localhost ~]$ echo -e "hello \f hello \f hello" # \f 换行,且光标停在换行后原来的地方
hello
hello
hello
[root@localhost ~]$ echo -e "hello\nworld" # \n 换行符
hello
world
[root@localhost ~]$ echo -e "hello\rworld" # \r 用于把光标移到行首,相当于把 \r 前面的字符删除,只输出 \r 后面的字符
world
[root@localhost ~]$ echo -e "hello\tworld" # \t 制表符,相当于键盘上的Tab键
hello world
[root@localhost ~]$ echo -e "hello\vworld" # \v 垂直制表符
hello
world
echo 输出颜色:
语法:echo -e "\033[字体背景颜色;字体颜色m字符串\033[0m"
例子:echo -e "\033[41;36m something here \033[0m"
解释:其中41的位置代表字体背景颜色,36的位置是代表字体颜色
//输出带颜色的字体
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[0m 关闭所有属性
\33[1m 设置高亮度
\33[4m 下划线
\33[5m 闪烁
\33[7m 反显
\33[8m 消隐
\33[30m — \33[37m 设置前景色
\33[40m — \33[47m 设置背景色
\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 显示光标
example1: 显示一行文本,任何特殊字符都不会被转义
[root@aliyun-hk1 linux-shell-test]# echo hello\nworld
hellonworld
[root@aliyun-hk1 linux-shell-test]# echo 'hello\nworld'
hello\nworld
[root@aliyun-hk1 linux-shell-test]# echo hello world
hello world
[root@aliyun-hk1 linux-shell-test]#
example2: 显示一行文本,不要输出末尾的换行符
[root@aliyun-hk1 linux-shell-test]# echo -n hello world
hello world[root@aliyun-hk1 linux-shell-test]# echo hello world
hello world
example3: 显示一行文本,启用反斜杠后面的转义字符
[root@aliyun-hk1 linux-shell-test]# echo -e 'hello\nworld'
hello
world
[root@aliyun-hk1 linux-shell-test]# echo -e 'hello\tworld'
hello world
example4: 显示一行文本,禁用反斜杠后面的转义字符,echo默认参数
[root@aliyun-hk1 linux-shell-test]# echo -E 'hello\nworld'
hello\nworld
[root@aliyun-hk1 linux-shell-test]# echo -E 'hello\tworld'
hello\tworld
example5: echo与cat的差异对比,echo只用于输出文本,cat用于输出文件内容或者从标准输入中输出
[root@aliyun-hk1 linux-shell-test]# echo hello
hello
[root@aliyun-hk1 linux-shell-test]# cat hello
cat: hello: No such file or directory
[root@aliyun-hk1 linux-shell-test]# echo /etc/hostname
/etc/hostname
[root@aliyun-hk1 linux-shell-test]# cat /etc/hostname
aliyun-hk1
[root@aliyun-hk1 linux-shell-test]# echo hello|cat
hello
[root@aliyun-hk1 linux-shell-test]#
examle6: echo在自动化构建中的作用,例如我们可以将DB中返回的数据格式化成ansible需要的数据,通过with_lines 传入某个task并循环使用。在某些情况下,从网络、DB等方式获取的标准输出,可以通过echo结合awk和grep等实现结果的格式化或数据清洗,然后用到后续的脚本中。
[root@aliyun-hk1 linux-shell-test]# echo -en 'name phone addr\nrobin 13712345678 CN\ntom 13812345678 HK\n'
name phone addr
robin 13712345678 CN
tom 13812345678 HK
[root@aliyun-hk1 linux-shell-test]# echo -en 'name phone addr\nrobin 13712345678 CN\ntom 13812345678 HK\n'|awk 'NR>1 {print $1}'
robin
tom
- name: show the items from DB
debug:
msg: "{{ item }}"
with_lines: "echo -en 'name phone addr\nrobin 13712345678 CN\ntom 13812345678 HK\n'|awk 'NR>1 {print $1}'
TASK [show the items from DB] ****************************************************************************************************************************************************************************************************************ok: [localhost] => (item=robin) => {
"msg": "robin"
}
ok: [localhost] => (item=tom) => {
"msg": "tom"
}
example7: echo还可以将获取到并格式化好的数据写入到一个文件,等待后续使用。
[root@aliyun-hk1 ansible-test]# echo -en 'name phone addr\nrobin 13712345678 CN\ntom 13812345678 HK\n'|awk 'NR>1 {print $1}' > DataFromDB1.txt
[root@aliyun-hk1 ansible-test]# cat DataFromDB1.txt
robin
tom
[root@aliyun-hk1 ansible-test]#
来源:https://segmentfault.com/a/1190000021884616
0
投稿
猜你喜欢
- Ubuntu是一个比较流行的Linux桌面系统,最近Ubuntu 20.04出来了,让我们来看看有什么新玩意。我们使用虚拟机来安装新系统,会
- win2003 server下的IIS6默认设置下对每个运行在默认应用池中的工作者进程都会经过20多个小时后自动回收该进程,造成保存在该进程
- 百度是全球最大的中文搜索引擎,对中文网页的搜索技术在某种程度上领先于Google,百度在某些方面与Google有相同或相似之处外它还有以下特
- 外部在我们着手清理内部之前,先站在外面,从大街上看一下您的站点——或者在谷歌搜索结果里看起来怎么样。只要随手打开离您最近的谷歌搜索框,使用查
- 国外安全研究人员最近发现,在Google上已经搜索到大量包含恶意软件的页面,数量达到10万以上,并感染了部分报纸网站、警察部门和其它大型机构
- 近日南方都市报的一则题为《网店变形记:握手线下士多》的关于广州“聚宝盆”B2M运营模式的报道,引起电
- 终于装上了时下超热门的Win7操作系统,小编在体验的同时却发现, Win7系统自带的图片处理软件不够简易实用,所以小编在此推荐使用与Win7
- 09年的离去,带走了些许忧伤,些许痛楚,或许你还沉浸在那过去的一切一切中,但是,面对2010年的到来,我们应该准备些什么了。今年是不平常的一
- 本文讲述在VMware Workstation Pro下安装Win10纯净版操作系统的步骤,提供各步骤的详细解说,对本次安装做一个记录。1.
- 六、邮箱管理能力考察邮件服务器的邮箱管理能力时,应该特别注意产品在为用户建立邮箱时的存储方式。目前主要有三种类型:第一种是集中存放。第二种是
- 我们经常用FTP共享文件,往往有时候会发生FTP空间不足的情况,这时候就不能共享资源了。如何对FTP空间的剩余数量进行监控呢?一旦出现空间不
- 打开: js/upload.js找到: alert(sel.text);删除该代码
- 网站付款标准版(Website Payment Standard简称WPS)是基于HTML的PayPal集成解决方案。如果你需要简单快速地在
- 百度图片第一位!百度视频第一位!百度贴吧第一位!百度百科第一位!百度mp3第一位!最近又出狠招,把百度“有啊”也搬上来了,现在还比较低调,搜
- 今天给Godaddy主机用户介绍如何使用htaccess来管理PHP文件的扩展名,需要注意的是:此内容仅适用于运行HostingConfig
- Vim编码的详细介绍Vim和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括 UCS-2、UTF-8 等流行的
- 又是一个黎明的到来,我已经数不清有多少个这样的黎明是在我坐在电脑面前来临的。仔细一想,我进入站长这圈子已经有1年多了。 
- 《站长》杂志本期挑选了国内站长界中数十个有一定知名度的站长论坛,经过对数百名站长进行的邮件和电话调查,再加上《站长》编辑部的综合评分,选出国
- 现在meta标签中的keywords和description在搜索引擎中的地位已经越来越低,原因归咎起来,基本上是由SEO和站长们堆砌关键字
- 下列示例在默认网站应用程序 (W3SVC/1/ROOT) 上启用分区。请注意,只要设置了 AspEnableTracker 属性,AspAp