#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
又比如:
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的主要内容,如果未能解决你的问题,请参考以下文章