4

『忘了再学』Shell基础 — 3、echo命令的介绍与使用 - 繁华似锦Fighting

 2 years ago
source link: https://www.cnblogs.com/liuyuelinfighting/p/16055732.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在讲Shell脚本之前,要先说一个我们之前学过的命令,echo命令。

echo命令是Linux中最基础的命令,也是很常用的命令,特别是在写Shell脚本的时候,可能会经常被用到,虽然echo命令非常基础,但是功能还算丰富。

1、echo命令的作用

  • 用于打印输出文本(字符串)。
  • 在脚本中echo命令常用于在显示器上显示一段文字,一般起到提示的作用。
  • 在Shell编程中,常常用echo命令,在终端下打印变量value的属性或者属性值。

2、echo命令的基本用法

(1)echo命令的格式

shell
[root@localhost ~ ] # echo [选项] [输 出内容]
  • -e:支持反斜线控制的字符转换(具体看本文第3点)。
  • -n:取消输出后行末的换行符号(就是内容输出后不换行)。

(2)举例

  • 输出一个连续的字符串。
    shell
    [root@localhost ~]# echo 123456789
    123456789
  • 输出一个带有空格的字符串。
    需要给字符串加上双引号。
    shell
    [root@localhost ~]# echo "666 888"
    666 888
  • -n选项演示。
    shell
    [root@localhost ~]# echo -n "666 888"
    666 888[root@localhost ~]#
    在脚本中偶尔会用到。

如果字符串的最后是!,这个!后一定要加上一个空格,不然会报错。

3、echo命令的-e选项用法

echo命令中如果使用了-e选项,则可以支持使用控制字符。控制字符如下:

  • \\:输出\本身。
  • \a:输出警告音。
  • \b:退格键,也就是向左删除键。
  • \c:取消输出行末的换行符。和-n选项一致。
  • \e:ESCAPE键。
  • \f:换页符。
  • \n:换行符。
  • \r:回车键。
  • \t:制表符,也就是Tab键。
  • \v:垂直制表符。
  • \0nnn:按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数。
  • \xhh:按照十六进制ASCII码表输出字符。其中hh是两位十六进制数。

(1)输出\,同时会在系统音中输出一声提示音。

livescript
[root@localhost ~ ] # echo -e "\\ \a"
\

如果觉得系统提示音很烦,可以编辑/etc/inputrc文件。

执行命令[root@localhost ~ ] # vim /etc/inputrc

编辑内容:把第二行的注释打开即可。

如下图所示:

修改保存文件,执行reboot命令重启系统即可。以后就不会在有系统提示音了。

(2)\b的用法,在b键左侧有\b,所以输出时只有ac

autoit
[root@localhost ~ ] # echo -e "ab\bc"
ac

(3)制表符\t和换行符\n的用法。

swift
[root@localhost ~ ] # echo -e "a\tb\tc\nd\te\tf"
a  b  c
d  e  f

(4)演示八进制ASCII码输出字符。

swift
[root@localhost ~ ] # echo -e "\0141\t\0142\t\0143\n\0144\t\0145\t\0146"
a  b  c
d  e  f

141是个八进制数,在ASCII码中代表小写的a,其他的以此类推。

(5)演示十六进制ASCII码输出字符。

taggerscript
[root@localhost ~ ] # echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66"
a  b  c
d  e  f

4、echo命令一些特殊用法

(1)输出字符带有字体颜色

执行命令如下:

shell
[root@localhost ~] # echo -e "\e[1;31m abcd \e[0m"

这条命令会把abcd按照红色输出。解释下这个命令:

  • \e[1是标准格式,代表颜色输出开始,\e[0m代表颜色输出结束。
  • 31m定义字体颜色是红色。echo能够识别的颜色如下:30m=黑色31m=红色32m= 绿色33m=黄色34m= 蓝色35m=洋红36m=青色37m=白色

命令结果如下图:

拓展,执行命令:

shell
[root@localhost ~ ] echo -e "\e[1;31ma\e[0m""\e[1;33mb\e[0m""\e[1;34mc\e[0m""\e[1;36md\e[0m"

结果如下图所示:

(2)输出字符带有背景颜色

执行命令如下:

shell
[root@localhost ~] # echo -e "\e[1;42m abcd \e[0m"

这条命令会给abcd加入一个绿色的背景。echo命令可以使用的背景颜色如下:40m= 黑色41m=红色42m=绿色43m=黄色44m=蓝色45m=洋红46m=青色47m=白色

命令结果如下图:

拓展,执行命令:

shell
[root@localhost ~ ] echo -e "\e[1;41ma\e[0m""\e[1;43mb\e[0m""\e[1;44mc\e[0m""\e[1;46md\e[0m"

命令结果如下图:

注意:好像字符串不能同时添加字体颜色和背景颜色(我没有试出来)。

__EOF__


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK