shell中echo基础及高级用法详解-渐入佳境
--作者:飞翔的小胖猪
--创建时间: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 高级用法
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"