当前位置:   article > 正文

[linux命令] echo命令及使用技巧二三事_echo + 管道符

echo + 管道符

前言

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.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • -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
  • 2
  • 3
  • 4
  • 5

技巧

  • 技巧1: 自动输出换行符号.
    起因是, 我们在运维脚本内, 需要写入一段换行的配置文件. 此时, 我们就会使用到-e, 进行一个反转义的功能.
# 不加转义符
sean@LAPTOP-BQK5NDTK:~$ echo "abc1\nabc2\nabc3"
abc1\nabc2\nabc3
# 设置转义符
sean@LAPTOP-BQK5NDTK:~$ echo -e "abc1\nabc2\nabc3"
abc1
abc2
abc3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述
这个参数非常有用. 比如, 我们需要把如下的配置内容写入某个文件. 不加-e参数设置的换行符, 会导致所有的内容都写在一行内. 而使用转义符, 可以使我们的内容, 放置不同的行上. 实战操作如下.

比如我们需要写入生成这样的一个配置文件. 并且命名为application.properties.

server=8080
host=127.0.0.1
application=springboot
  • 1
  • 2
  • 3
echo -e "server=8080\nhost=127.0.0.1\napplication=springboot" >> application.properties

  • 1
  • 2

在这里插入图片描述


  • 技巧2: 使用echo可以自动帮助我们解决, 有时需要手动输入的问题.

比如我们在使用某些命令的时候, 他经常会让我们在看不见的地方输入密码. 这个时候基本会比较难受.

  • 比如使用yum install mongodb时候, 经常需要你按2个y进行yes确认.
  • 比如mysql的mysql -u root -d. 此时, 会需要在隐藏的环境下输入密码.
解决办法.

使用echo加管道符复合的方式进行处理.

echo y y | yum install mongodb
  • 1

这样就可以解放双手, 并且我们的脚本也可以一键式执行下去了.


Reference

[1]. Linux命令大全 - echo命令
[2].

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/629696
推荐阅读
相关标签
  

闽ICP备14008679号