赞
踩
文章目录
初学linux都会接触到这个echo命令,因为这个echo的用处实在太大了,不管说日常使用上还是写shell脚本中,都是需要用到的;echo命令可以输出用户要显示在屏幕上的信息、显示环境变量的值、搭配重定向还能写入信息,还能用来判断上一条命令的对错,一起看看吧。
echo是用于终端设备上输出指定的字符串信息或显示变量的值的命令,能够给用户一些简单的提醒信息,也可以讲输出的指定字符串内容同管道符一起传递给后续命令作为标准输入信息再来进行二次处理,又或者同输出重定向一起操作,将信息直接写入到文件中。
小提示:如需提取变量值,需在变量名称前加入$符号做提取,变量名称一般均为大写形式。
1)通过用--help查看echo命令,发现不是想得到的信息,其实是因为echo是内置命令,所以help要写在命令前面。
语法:echo 【参数】字符串/变量
- [root@localhost ~]# echo --help
- --help
- [root@localhost ~]# help echo
- echo: echo [-neE] [参数 ...]
- 将参数写到标准输出。
-
- 在标准输出上显示 ARG 参数后跟一个换行。
-
- 选项:
- -n 不要追加换行
- -e 启用下列反斜杠转义的解释
- -E 显式地抑制对于反斜杠转义的解释
-
- `echo' 对下列反斜杠字符进行转义:
- \a 警告(响铃)
- \b 退格
- \c 抑制更多的输出
- \e 转义字符
- \f 格式提供
- \n 换行
- \r 回车
- \t 横向制表符
- \v 纵向制表符
- \\ 反斜杠
- \0nnn 以 NNN (八进制)为 ASCII 码的字符。 NNN 可以是
- 0到3个八进制数字
- \xHH 以 HH (十六进制)为值的八比特字符。HH可以是
- 一个或两个十六进制数字
可以看到的是echo命令是可以对字符信息转义的,这里需要加上echo -e的参数才行。
2)常用参数
-n | 不输出结尾的换行符 |
-e “\a” | 发出警告音 |
-e “\b” | 删除前面的一个字符 |
-e “\c” | 结尾不加换行符 |
-e “\f” | 换行,光标仍停留在原来的坐标位置 |
-e “\n” | 换行,光标移至行首 |
-e “\r” | 光标移至行首,但不换行 |
-E | 禁止反斜杠转义,与-e参数功能相反 |
1)将内容输出到屏幕上
- [root@localhost ~]# echo "hello world"
- hello world
2)内容不进行换行,可以看到内容与第二行之间没有换行。
- [root@localhost ~]# echo -n "hello world"
- hello world[root@localhost ~]#
3)使用-E参数,加上了转义的参数没有什么变化
- [root@localhost ~]# echo -E "hello world\tthis is linux"
- hello world\tthis is linux
- [root@localhost ~]# echo -e "hello world\tthis is linux"
- hello world this is linux
4)输出环境变量的内容,若加了转义符\会发现echo 不输出它原有的信息。
- [root@localhost ~]# echo $PATH
- /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin
- [root@localhost ~]# echo $HISTSIZE
- 1000
-
- [root@localhost ~]# echo $USER
- root
- [root@localhost ~]# echo \$USER
- $USER
要查看系统中有哪些环境变量可以用env命令
- [root@localhost ~]# env
- XDG_VTNR=1
- SSH_AGENT_PID=2070
- XDG_SESSION_ID=1
- HOSTNAME=localhost.localdomain
- IMSETTINGS_INTEGRATE_DESKTOP=yes
- VTE_VERSION=5204
- TERM=xterm-256color
- SHELL=/bin/bash
- XDG_MENU_PREFIX=gnome-
- HISTSIZE=1000
- ......
- COLORTERM=truecolor
- XAUTHORITY=/run/gdm/auth-for-root-FTjRUg/database
- _=/usr/bin/env
5)echo配合重定向一起使用,表示写入信息到文件中。
- [root@localhost ~]# echo "hello world" > file.txt
- [root@localhost ~]# cat file.txt
- hello world
6)如果不清楚上一条命令执行是否成功,可以通过$?确认,正确为0,有问题的为非0值。
- [root@localhost ~]# ls
- anaconda-ks.cfg file.txt 公共 模板 视频 图片 文档 下载 音乐 桌面
- [root@localhost ~]# echo $?
- 0
- [root@localhost ~]# sl
- bash: sl: 未找到命令...
- 相似命令是: 'ls'
- [root@localhost ~]# echo $?
- 127
7)echo输出带有换行符的内容
- [root@localhost ~]# echo -e "apache\nphp\nmysql"
- apache
- php
- mysql
8)echo -e 其他反斜杠字符用法
- [root@localhost ~]# echo -e "\rhello world" #-r光标移至行首,不换行
- hello world
- [root@localhost ~]# echo -e "he\rllo world"
- llo world
- [root@localhost ~]# echo -e "hello world\a" #发出警告
- hello world
- [root@localhost ~]# echo -e "hello\b world" #-b删除前一个字符
- hell world
- [root@localhost ~]# echo -e "hello\f world" #换行,且光标停留在原来的坐标位置
- hello
- world
- [root@localhost ~]# echo -e "hello wor\tld"
- hello wor ld
- [root@localhost ~]# echo -e "hello wor\fld"
- hello wor
- ld
- [root@localhost ~]# echo -e "hello world\c" #结尾不加换行符
- hello world[root@loc
echo的参数并不是很多,还是值得去记一记和了解其他更多的用法,学习命令最重要就是要记住用法和常用参数,俗话说好记性不如烂笔头,多敲亦能熟能生巧。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。