linux基础命令--echo
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础命令--echo相关的知识,希望对你有一定的参考价值。
前言
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命令,比如我们要写如下的需求:
写一个宝塔清单列表脚本
- 定义一个脚本,以.sh结尾。 menu.sh
- 输出以下内容,供用户选择:
请从以下选项中,选出你要进行的操作:
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
请从以下选项中,选出你要进行的操作:
- 安装apache
- 安装 MySQL
- 安装php
- 安装LAMP
- 安装wordpress
可以看到echo命令是自动换行的,显示出来了宝塔面板,这种后续可以再优化,比如当用户输入1的时候可以,执行什么操作,输入2的时候执行什么操作。
总结
以上就是对echo命令的全部总结,在日常的工作中使用的比较多,建议参照本文档多多练习,加以时日,必成大牛。
以上是关于linux基础命令--echo的主要内容,如果未能解决你的问题,请参考以下文章