Linux echo文本处理命令的使用及示例
echo在linux帮助文档的描述是显示一行文本,类似于python和java等编程语言中的print语句,实际上它的作用不仅仅如此。可以使用manecho查看详细的参数说明。
echo命令用于输出指定的字符串,常见用法如下:
[root@localhost~]$echo#输出一个空白行 [root@localhost~]$echo"helloworld"#输出指定的字符串 [root@localhost~]$echo$HOSTNAME#输出变量名对应的值 [root@localhost~]$echo"helloworld">1.txt#输出字符串到指定文件 [root@localhost~]$echo`date`#输出命令的执行结果
常用参数:
[root@localhost~]$echo-n"helloworld"#-n不在末尾输出换行符,默认会在末尾输出换行符 helloworld[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\cworld"#\c使用该转义符后,\c后面的字符不再输出 hello [root@localhost~]$echo-e"\e[32;1mhelloworld\e[35;1m"#\e用于控制字体和背景颜色 helloworld [root@localhost~]$echo-e"hello\fhello\fhello"#\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键 helloworld [root@localhost~]$echo-e"hello\vworld"#\v垂直制表符 hello world
echo输出颜色:
语法:echo-e"\033[字体背景颜色;字体颜色m字符串\033[0m"
例子:echo-e"\033[41;36msomethinghere\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-hk1linux-shell-test]#echohello\nworld hellonworld [root@aliyun-hk1linux-shell-test]#echo'hello\nworld' hello\nworld [root@aliyun-hk1linux-shell-test]#echohelloworld helloworld [root@aliyun-hk1linux-shell-test]#
example2:显示一行文本,不要输出末尾的换行符
[root@aliyun-hk1linux-shell-test]#echo-nhelloworld helloworld[root@aliyun-hk1linux-shell-test]#echohelloworld helloworld
example3:显示一行文本,启用反斜杠后面的转义字符
[root@aliyun-hk1linux-shell-test]#echo-e'hello\nworld' hello world [root@aliyun-hk1linux-shell-test]#echo-e'hello\tworld' helloworld
example4:显示一行文本,禁用反斜杠后面的转义字符,echo默认参数
[root@aliyun-hk1linux-shell-test]#echo-E'hello\nworld' hello\nworld [root@aliyun-hk1linux-shell-test]#echo-E'hello\tworld' hello\tworld
example5:echo与cat的差异对比,echo只用于输出文本,cat用于输出文件内容或者从标准输入中输出
[root@aliyun-hk1linux-shell-test]#echohello hello [root@aliyun-hk1linux-shell-test]#cathello cat:hello:Nosuchfileordirectory [root@aliyun-hk1linux-shell-test]#echo/etc/hostname /etc/hostname [root@aliyun-hk1linux-shell-test]#cat/etc/hostname aliyun-hk1 [root@aliyun-hk1linux-shell-test]#echohello|cat hello [root@aliyun-hk1linux-shell-test]#
examle6:echo在自动化构建中的作用,例如我们可以将DB中返回的数据格式化成ansible需要的数据,通过with_lines传入某个task并循环使用。在某些情况下,从网络、DB等方式获取的标准输出,可以通过echo结合awk和grep等实现结果的格式化或数据清洗,然后用到后续的脚本中。
[root@aliyun-hk1linux-shell-test]#echo-en'namephoneaddr\nrobin13712345678CN\ntom13812345678HK\n' namephoneaddr robin13712345678CN tom13812345678HK [root@aliyun-hk1linux-shell-test]#echo-en'namephoneaddr\nrobin13712345678CN\ntom13812345678HK\n'|awk'NR>1{print$1}' robin tom -name:showtheitemsfromDB debug: msg:"{{item}}" with_lines:"echo-en'namephoneaddr\nrobin13712345678CN\ntom13812345678HK\n'|awk'NR>1{print$1}' TASK[showtheitemsfromDB]****************************************************************************************************************************************************************************************************************ok:[localhost]=>(item=robin)=>{ "msg":"robin" } ok:[localhost]=>(item=tom)=>{ "msg":"tom" }
example7:echo还可以将获取到并格式化好的数据写入到一个文件,等待后续使用。
[root@aliyun-hk1ansible-test]#echo-en'namephoneaddr\nrobin13712345678CN\ntom13812345678HK\n'|awk'NR>1{print$1}'>DataFromDB1.txt [root@aliyun-hk1ansible-test]#catDataFromDB1.txt robin tom [root@aliyun-hk1ansible-test]#
到此这篇关于Linuxecho文本处理命令的使用及示例的文章就介绍到这了,更多相关Linuxecho命令内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。