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

莫道桑榆晚,为霞尚满天。这篇文章主要讲述#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


又比如:





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]#

【#yyds干货盘点# linux 基础命令之echo】看来 只能写多行  echo。

    推荐阅读