#yyds干货盘点# linux 基础命令之echo

Posted 永远不要放纵自我

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# linux 基础命令之echo相关的知识,希望对你有一定的参考价值。

echo 是非常基础的linux 命令


基本用法

其常用的转义字符如下:

\\b 转义后相当于按退格键(backspace) ,但前提是”\\b”后面存在字符,具体效果参考下方示例。

\\c 不换行输出,在”\\c”后面不存在字符的情况下,作用相当于echo -n,具体效果参考下方示例。

\\n 换行,效果看示例。

\\f 换行,但是换行后的新行的开头位置连接着上一行的行尾,具体效果查看示例;

\\v 与\\f相同;

\\t 转以后表示插入tab,即制表符,已经在上面举过例子;

\\r 光标移至行首,但不换行,相当于使用”\\r”以后的字符覆盖”\\r”之前同等长度的字符,只看这段文字描述的话可能不容易理解,具体效果查看示例;

\\\\ 表示插入”\\”本身;


看上去好用,但是真正的用明白,还是有难度的。比如换行。


echo -e参数,多行输出

echo 换行,使用 -e 参数, 配合 \\n 可以多行输出 , ,比如:

echo -e "alias t=\\"echo `date` ++++++\\"   \\n echo 111 " >> ~/.bashrc

如果没有 -e 参数 或者使用 -E 参数,那么 \\n  原样输出。

那么没有 -e 参数 或者使用 -E 参数 ,是不是一样的? 测试 没有区别



echo 不换行

-n 不输出行尾的换行符. —— 是什么? 其实就是 System.out.print , 表示结尾不换行。 默认是换行, 也就是  System.out.println ..



引号的作用

需要注意的是 有双引号 和没有是 不一样的:

[root@localhost meng]# echo "alias t=echo \\`date\\` ++\\\\+ \\raaa\\t+++\\" \\n echo 111 "

alias t=echo `date` ++\\+ \\raaa\\t+++" \\n echo 111

[root@localhost meng]#

[root@localhost meng]# echo -E "alias t=echo \\`date\\` ++\\\\+ \\raaa\\t+++\\" \\n echo 111 "

alias t=echo `date` ++\\+ \\raaa\\t+++" \\n echo 111

[root@localhost meng]#

[root@localhost meng]# echo alias t=echo \\`date\\` ++\\\\+ \\raaa\\t+++\\" \\n echo 111

alias t=echo `date` ++\\+ raaat+++" n echo 111


又比如:

#yyds干货盘点#



echo换行输入

echo 换行 输出的问题解决了, 换行输入呢?

就是说, 想 一个echo 输入多个,类似下面的格式:

echo " 11 \\

22 \\

33\\

44"


直接执行是没问题的:

[root@localhost meng]# echo " 11 \\
>
> 22 \\
>
> 33\\
>
> 44"
11
22
33
44


但是 在sh 脚本中不行:

[root@localhost meng]# ./gc.sh 
./gc.sh:行11: 寻找匹配的 `" 是遇到了未预期的文件结束符
./gc.sh:行16: 语法错误: 未预期的文件结尾
[root@localhost meng]#

看来 只能写多行 echo。

以上是关于#yyds干货盘点# linux 基础命令之echo的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#Linux命令之cdpwdls

#yyds干货盘点#Linux常见面试题之网络通讯命令

#yyds干货盘点#linux命令之usrpskill

#yyds干货盘点#Linux常见面试题之文档编辑命令

Linux分享之Curl命令#yyds干货盘点#

#yyds干货盘点#Linux常见面试题之磁盘管理命令