Shell脚本的echo命令用法

时间:2020-12-10 15:35:50

在使用shell脚本之前,我们是否应该先通俗的了解一下shell是什么呢?shell可以理解为命令解释器。我们知道,如果我们想要计算机去做一件事儿,就得告诉它。但是计算机内核不可能直接识别我们的命令,所以shell就是介于内核和用户交互之间的中间层,接收用户输入的命令,解释给内核执行。一般来说就像windows操作系统,你点击鼠标可能就会完成一个操作,实际这些图形下面就是shell了。该系统下的命令窗口的dos语言就是一种shell。常见得比如Linux和Unix系统里面的bash,ksh,csh等。所谓的shell脚本就是将很多的shell命令语句集合在一个文件中,来完成一些较复杂的错做。


      在Shell脚本编程中,echo命令是用来输出一些字符串,用作提示。下面就简单介绍下它的基本用法,以后有补充的再扩充。下面的图片示例中,"#"是注释符

基本的语法为:    echo  [-en]  String             #     -e 转义反斜扛字符    -n 禁止换行

常用的几种输出格式:

1.显示普通字符串

例如: 

  echo "It is a test"  结果是: It is a test

       这个字符串可以加双引号也可以加单引号也可以不加,区别是:当使用单引号时,里面是什么就输出什么,即使有转义字符也不识别。当使用双引号时,可以识别转义字符。如果不加引号,则将字符串中的单个单词作为字符串输出,各个字符串之间用一个空格分割。

例如:

echo "\"It is a test\"" 结果是: "It is a test"

2.显示至定向文件

例如:

  echo "It is a test" > myfile    # >后面跟文件名

3.显示(不)换行(图片来源)

例如:

#!/bin/sh
echo -e "OK! \c" # -e 开启转义 \c 不换行
echo "It is a test"
  echo -e "OK!\n"              # -e 开启转义  \n换行
echo "It it a test"

另外,echo常用的转义字符如下:

参数 说明
              \a 闹铃             
              \b 退格(即删除前一个字符)
              \c 强制换行
              \e 退出
              \f                    Formfeed(没验证还,不知道神马意思回头再改)     
              \n 换行
              \t 水平制表符
              \v 垂直制表符
              \\ 反斜扛                     
              \"  双引号                           
             \nnn            插入nnn"八进制"所代表的ASCII字符            

完整的ASCII码对照表

Shell脚本的echo命令用法

Shell脚本的执行过程(图片来源)

shell的转义符

字符 说明
‘’(单引号) 又叫硬转义,其内部所有的shell 元字符、通配符都会被关掉。注意,硬转义中不允许出现’(单引号)。
“”(双引号) 又叫软转义,其内部只允许出现特定的shell 元字符:$用于参数代换 `用于命令代替
\(反斜杠)   又叫转义,去除其后紧跟的元字符或通配符的特殊意义。
这些转义符用在我们想让通配符变为普通字符的时候使用。在有通配符和特殊字符的情况下,shell得到一条命令后如何执行的呢?

Shell脚本的echo命令用法

      如图所示我们可以看到,双引号经过参数扩展,命令行代换和算术代换后进入执行步骤,而单引号转义字符直接进入执行步骤。两个在shell检测过程中跳过了不同数量的步骤。