Linux echo命令用法详解(附带实例)
在我们日常编辑脚本的过程中,经常需要给用户输出一些具有提示性的信息,或者将脚本执行结果显示给用户,又或者我们在脚本编辑过程中需要得知脚本执行状态。
在上述情况下,我们可以选择使用 echo 命令来实现脚本提示信息显示、脚本执行结果显示、脚本调试等工作。
echo 命令除了可以应用在脚本中,还可以在命令行中执行。接下来,我们先学习在命令行中执行 echo 命令,等到基础知识掌握之后再学习如何将 echo 命令写到脚本中。
echo 命令的格式如下:
其实,echo 命令非常简单,命令的输出内容如果没有特殊含义,就将原内容输出到屏幕上;如果输出内容有特殊含义,就输出其含义,例如:
在当前的 Rocky Linux 9.0 中并不需要在“!”后加入空格。但是请注意,“!”如果连续出现多次,就会存在一些特殊含义。例如,我们在历史命令中见到的“!!”就表示调用上一条历史命令:
在这种情况下,两个连续的“!”调用了上一条命令 ls /root/ ,因此在输出结果中我们会看到,先将“!!”转换为上一条命令(ls /root/),再进行输出:
在 echo 命令中如果使用了“-e”选项,就可以支持使用控制字符,如下表所示:
接下来说明“-e”选项,举例如下:
如果想要听到警告音,那么前提是有声音输出设备,首先在字符界面中是最容易听到的;其次通过 Xshell 远程连接的 Windows10 或 Windows11 操作系统也可以听到警告音,只是警告音的间隔时间相比字符界面中的略长,并且不同的操作系统会有不同的警告音;最后如果想要在图形化本地听到警告音,就需要对系统中的声音进行比较复杂的设置。
例如:
注意,若使用“b”作为字符串的最后一个字符,则删除不生效。此种情况下,在“b”后加入空格可以解决问题。例如:
也就是说,141 这个八进制数在 ASCII 码中代表小写的“a”,其他以此类推。
echo 命令还可以输出一些比较有意思的内容。例如:
echo 命令能够识别的颜色如下:30m=黑色,31m=红色,32m=绿色,33m=黄色,34m=蓝色,35m=洋红,36m=青色,37m=白色。
例如:
在上述情况下,我们可以选择使用 echo 命令来实现脚本提示信息显示、脚本执行结果显示、脚本调试等工作。
echo 命令除了可以应用在脚本中,还可以在命令行中执行。接下来,我们先学习在命令行中执行 echo 命令,等到基础知识掌握之后再学习如何将 echo 命令写到脚本中。
echo 命令的格式如下:
[root@localhost~]# echo [选项][输出内容]选项:
- -e:支持反斜线控制的字符转换(具体参见表 1);
- -n:取消输出后行末的换行符号(内容输出后不换行)。
其实,echo 命令非常简单,命令的输出内容如果没有特殊含义,就将原内容输出到屏幕上;如果输出内容有特殊含义,就输出其含义,例如:
[root@localhost~]# echo "Mr. Shen Chao is a good man! " Mr. Shen Chao is a good man! #echo 命令后的字符串就会输出到屏幕上 [root@localhost~]#在某些版本的 Linux 操作系统中,当以“!”为 echo 字符串结尾时,在“!”后要记得添加空格,否则会有报错提示。
在当前的 Rocky Linux 9.0 中并不需要在“!”后加入空格。但是请注意,“!”如果连续出现多次,就会存在一些特殊含义。例如,我们在历史命令中见到的“!!”就表示调用上一条历史命令:
[root@localhost~]# ls /root/ #首先,我们先执行一条命令 anaconda-ks.cfg [root@localhost~]# echo "ABCD!!" #在字符串中,出现了两个连续的 “!” echo "ABCDls /root/" ABCDls /root/
在这种情况下,两个连续的“!”调用了上一条命令 ls /root/ ,因此在输出结果中我们会看到,先将“!!”转换为上一条命令(ls /root/),再进行输出:
[root@localhost~]# echo -n "Mr. Shen Chao is a good man!" Mr. Shen Chao is a good man![root@localhost~]# #如果加入了 “-n” 选项,那么在输出内容结束后,不会换行,直接显示新行的提示符
在 echo 命令中如果使用了“-e”选项,就可以支持使用控制字符,如下表所示:
控制字符 | 作用 |
---|---|
\\ | 输出本身 |
\a | 输出警告音(就是滴的声音) |
\b | 退格键,即向左删除键 |
\c | 取消输出行末的换行符。和“-n”选项一致 |
\e | Esc 键 |
\f | 换页符 |
\n | 换行符 |
\r | Enter键 |
\t | 制表符,即Tab键 |
\v | 垂直制表符 |
\0nnn | 按照八进制 ASCII 码表输出字符。其中 0 为数字 0,nnn 是三位八进制数 |
\xhh | 按照十六进制 ASCII 码表输出字符。其中hh是两位十六进制数 |
接下来说明“-e”选项,举例如下:
[root@localhost~]# echo -e "\\\a" \ #输出 “\”,同时会在系统中播放警告音在上面的例子中,echo 命令会输出“\”。如果不写为“\”,就会因为“\”具有特殊含义而不输出。
如果想要听到警告音,那么前提是有声音输出设备,首先在字符界面中是最容易听到的;其次通过 Xshell 远程连接的 Windows10 或 Windows11 操作系统也可以听到警告音,只是警告音的间隔时间相比字符界面中的略长,并且不同的操作系统会有不同的警告音;最后如果想要在图形化本地听到警告音,就需要对系统中的声音进行比较复杂的设置。
例如:
[root@localhost~]# echo -e "ab\bc" ac #在这个输出中,b键左侧有 “b”,因此输出时只有 ac
注意,若使用“b”作为字符串的最后一个字符,则删除不生效。此种情况下,在“b”后加入空格可以解决问题。例如:
[root@localhost~]# echo -e "a\tb\tc\nd\te\tf" a b c d e f #因为加入了制表符 “t” 和换行符 “n”,所以会按照格式输出 [root@localhost~]# echo -e "\0141\t\0142\t\0143\n\0144\t\0145\t\0146" a b c d e f #还是会输出上面的内容,不过会按照八进制ASCII码输出
也就是说,141 这个八进制数在 ASCII 码中代表小写的“a”,其他以此类推。
[root@localhost~]# echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66" a b c d e f #按十六进制ASCII码同样可以输出
echo 命令还可以输出一些比较有意思的内容。例如:
[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=白色。
例如:
echo -e "\e[5;41m abcd \e[0m"在数字 1 前面加入 5,表示输出字体闪烁。在系统中,我们会发现一个失效的符号链接也是以这种方式显示的。在以后编写脚本的过程中,也可以使用这种方式输出一些警告性提示信息。