linux基础命令--echo

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础命令--echo相关的知识,希望对你有一定的参考价值。

前言


echo命令是日常用的最大的命令之一,可以用来判断之前执行的命令是否正确,也有一些其他的用法,我们一起来看看吧

linux基础命令--echo_字符串

一、echo 命令是什么?

作用: echo命令能将指定文本显示在Linux命令行上,或者通过重定向符写入到指定的文件中。

语 法:echo [-ne][字符串] / echo [–help][–version]

补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。

二、常用参数及案例

1 常用参数

查看一下帮助,使用 help echo 来查看,这里要注意,如果你使用 echo --help ,变成了输出help

[root@mufenggrow ~]# echo --help
--help

于是,对于 echo命令,我们查看帮助,可以使用 help echo

[root@itlaoxin ~]# help echo
echo: echo [-neE] [arg ...]
Write arguments to the standard output.

Display the ARGs on the standard output followed by a newline.

Options:
-n do not append a newline
-e enable interpretation of the following backslash escapes
-E explicitly suppress interpretation of backslash escapes

`echo interprets the following backslash-escaped characters:
\\a alert (bell)
\\b backspace
\\c suppress further output
\\e escape character
\\f form feed
\\n new line
\\r carriage return
\\t horizontal tab
\\v vertical tab
\\\\ backslash

整理后,变成如下的参数:

-n 不要自动换行
-E 不解析转义符
-e 让转义符展示自己的特性。
以下字符,不加-e显示为文字,加了-e显示转义符自身特性:

  • \\a 发出警告声
  • \\c最后不加换行符
  • \\n 换行且光标仍旧停留在原来的位置
  • \\t 插入tab键
  • \\r 光标移动到首行且不换行

具体的其他参数,可以使用man echo 来查询

2.常用案例

2.1 直接输出文本内容

此时不需要加任何参数,直接把要输出的内容写在 echo 后面,需要注意的是,如果要输出的内容有空格,尽可能加上 双引号:
代码如下:

[root@mufenggrow ~]# echo "mufenggrow"
mufenggrow
## 输出helloworld
[root@mufenggrow ~]# echo "helloworld"
helloworld
[root@mufenggrow ~]#

2.2 使用echo追加内容到某个文件

要追加内容到某个文件中, 可以使用>> , 使用后会在文本后面继续追加内容,若文件中原来就有内容也不会被覆盖掉。
注意: > 表示覆盖,如果直接使用> 后,文本的内容会被覆盖为新的内容。

[root@mufenggrow ~]# mkdir test
[root@mufenggrow ~]# cd test
[root@mufenggrow test]# ls
[root@mufenggrow test]# echo mufenggrow >> a.txt
[root@mufenggrow test]# cat a.txt
mufenggrow
# 使用 > 表示覆盖
[root@mufenggrow test]# echo aaa > a.txt
## 可以看到最后的结果为aaa
[root@mufenggrow test]# cat a.txt
aaa

2.3 使用-n确保不换行

-n 表示不换行输出,如下,当我们同时执行两条命令的时候,没加-n ,就会变成来两行,加了-n 就会变成一行

[root@mufenggrow test]# echo mufenggrow;echo "study english"
mufenggrow
study english
[root@mufenggrow test]# echo -n mefenggorw;echo "study english"
mefenggorwstudy english
[root@mufenggrow test]#

可以看到不加-n参数,就会换行,加了-n,两条命令就在同一行

2.4 打印变量

在shell脚本中,我们经常有变量的概念,定义一个变量就是 变量名=内容
比如 name=mufenggrow

[root@mufenggrow test]# name=mufenggrow
[root@mufenggrow test]# echo $name
mufenggrow

可以看到,linux中的变量就是使用 echo $变量名 来输出 ,此处的 可以不加。

2.5 判断命令是否执行成功

echo $? 可以判断文件是否执行成功。
结果为0证明执行成功,结果不为零证明执行没有成功

备注:什么是进程的生命周期?
当一个进程执行完毕时,该进程会调用一个名为 _exit 的例程来通知内核它已经做好“消亡”的准备了。该进程会提供一个退出码(一个整数)表明它准备退出的原因。按照惯例,0用来表示正常的或者说“成功”的终止。

也就是说我们在执行 echo $? 时反回的值就是进程的退出码。而且,这个退出码是由刚刚执行完的进程提供给系统内核的。

# ping一下百度,看看是否执行成功
[root@mufenggrow test]# ping -c1 -w1 www.baidu.com
PING www.a.shifen.com (39.156.66.14) 56(84) bytes of data.
64 bytes from 39.156.66.14 (39.156.66.14): icmp_seq=1 ttl=53 time=15.6 ms
[root@mufenggrow test]# echo $?
0 // 结果为0证明执行成功
[root@mufenggrow test]# ping 192.168.1.22
PING 192.168.1.22 (192.168.1.22) 56(84) bytes of data.

5 packets transmitted, 0 received, +4 errors, 100% packet loss, time 4003ms
pipe 4
[root@mufenggrow test]# echo $?
1
结果不为零证明执行执行失败

另外:还有很多常用的变量,可以使用echo 命令来输出
比如:

变量

解释

$0

shell 或者shell脚本的名字

$*

表示执行脚本传入参数的列表(不包括$0)

$#

表示执行脚本传入参数的个数

$$

表示进程的id;Shell本身的PID(ProcessID,即脚本运行的当前 进程ID号)

$@

表示执行脚本传入参数的所有个数(不包括$0)

$1

表示第一个参数

如果想把shell脚本写好,这个表格一定要仔细诵读记忆。

2.6 echo 在脚本中的应用

在脚本中,我们也会用到echo命令,比如我们要写如下的需求:

写一个宝塔清单列表脚本

  1. 定义一个脚本,以.sh结尾。 menu.sh
  2. 输出以下内容,供用户选择:

请从以下选项中,选出你要进行的操作:
1. 安装apache
2. 安装 mysql
3. 安装php
4. 安装LAMP
5. 安装wordpress

代码实现:

[root@mufenggrow ~]# vim menu.sh
[root@mufenggrow ~]# cat menu.sh
#!/bin/bash
echo "请从以下选项中,选出你要进行的操作:"
echo "1. 安装apache";echo "2. 安装 MySQL" ;echo "3. 安装php";echo "安装LAMP"

执行过程:

[root@mufenggrow ~]# chmod +x menu.sh
[root@mufenggrow~]# ./menu.sh
请从以下选项中,选出你要进行的操作:

  1. 安装apache
  2. 安装 MySQL
  3. 安装php
  4. 安装LAMP
  5. 安装wordpress

可以看到echo命令是自动换行的,显示出来了宝塔面板,这种后续可以再优化,比如当用户输入1的时候可以,执行什么操作,输入2的时候执行什么操作。


总结

以上就是对echo命令的全部总结,在日常的工作中使用的比较多,建议参照本文档多多练习,加以时日,必成大牛。

以上是关于linux基础命令--echo的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础命令-echo

Linux基础命令---echo打印内容到标准输出

#yyds干货盘点# linux 基础命令之echo

linux基础命令:cat和echo

1Linux基础命令-vi cat echo sed tail

张明贵-Linux基础命令学习