前言
echo 命令基本上是我们经常遇到的linux命令. 最近在工作中又使用到了, 并且会议起了使用的2个技巧. 在此补充于博客内, 防止忘记.
介绍
我们可以通过使用man命令 来查看echo支持哪些命令扩展. 当然, 嫌弃麻烦的话, 你可以去某些网站查阅.
ECHO(1) User Commands ECHO(1)
NAME
echo - display a line of text
SYNOPSIS
echo [SHORT-OPTION]... [STRING]...
echo LONG-OPTION
DESCRIPTION
Echo the STRING(s) to standard output.
-n do not output the trailing newline
-e enable interpretation of backslash escapes
-E disable interpretation of backslash escapes (default)
--help display this help and exit
--version
output version information and exit
If -e is in effect, the following sequences are recognized:
\\ backslash
\a alert (BEL)
\b backspace
\c produce no further output
\e escape
\f form feed
\n new line
\r carriage return
\t horizontal tab
\v vertical tab
\0NNN byte with octal value NNN (1 to 3 digits)
\xHH byte with hexadecimal value HH (1 to 2 digits)
NOTE: your shell may have its own version of echo, which usually supersedes the version described here.
Please refer to your shell's documentation for details about the options it supports.
- -n 不输出结尾的换行符
- -e “\a” 发出警告音
- -e “\b” 删除前面的一个字符
- -e “\c” 结尾不加换行符
- -e “\f” 换行,光标扔停留在原来的坐标位置
- -e “\n” 换行,光标移至行首
- -e “\r” 光标移至行首,但不换行
- -E 禁止反斜杠转移,与-e参数功能相反
- –version 查看版本信息
- –help 查看帮助信息
PS: echo的 --help 和--version 并不能直接支持. 本地试验是这个样子的, 看起来是用法不对. 后续再查看下.
# 可以看到, 此处命令直接输出了. 并未进行什么有用的操作.
sean@LAPTOP-BQK5NDTK:~$ echo -E -help
-help
sean@LAPTOP-BQK5NDTK:~$ echo --version
--version
技巧
- 技巧1: 自动输出换行符号.
起因是, 我们在运维脚本内, 需要写入一段换行的配置文件. 此时, 我们就会使用到-e , 进行一个反转义的功能.
# 不加转义符
sean@LAPTOP-BQK5NDTK:~$ echo "abc1\nabc2\nabc3"
abc1\nabc2\nabc3
# 设置转义符
sean@LAPTOP-BQK5NDTK:~$ echo -e "abc1\nabc2\nabc3"
abc1
abc2
abc3
这个参数非常有用. 比如, 我们需要把如下的配置内容写入某个文件. 不加-e 参数设置的换行符, 会导致所有的内容都写在一行内. 而使用转义符, 可以使我们的内容, 放置不同的行上. 实战操作如下.
比如我们需要写入生成这样的一个配置文件. 并且命名为application.properties .
server=8080
host=127.0.0.1
application=springboot
echo -e "server=8080\nhost=127.0.0.1\napplication=springboot" >> application.properties
- 技巧2: 使用echo可以自动帮助我们解决, 有时需要手动输入的问题.
比如我们在使用某些命令的时候, 他经常会让我们在看不见的地方输入密码. 这个时候基本会比较难受.
- 比如使用
yum install mongodb 时候, 经常需要你按2个y 进行yes确认. - 比如mysql的
mysql -u root -d . 此时, 会需要在隐藏的环境下输入密码.
解决办法.
使用echo 加管道符复合的方式进行处理.
echo y y | yum install mongodb
这样就可以解放双手, 并且我们的脚本也可以一键式执行下去了.
Reference
[1]. Linux命令大全 - echo命令 [2].
|