5.7 echo:显示输出文本内容
5.7.1 命令详解
【命令星级】 ★★★★★
【功能说明】
echo命令能将指定文本显示在Linux命令行上,或者通过重定向符写入到指定的文件中。
【语法格式】
echo [option] [string]
echo [选项] [文本]
【选项说明】
表5-7针对echo命令的参数选项进行了说明。
表5-7 echo命令的参数选项及说明
5.7.2 使用范例
**范例5-19:**打印文本到屏幕输出。
[root@centos7 ~]# echo Hello world #echo直接接想输出的文本。
Hello world
[root@centos7 ~]# echo 'Hello world' #可以使用单引号将内容括起来。
Hello world
[root@centos7 ~]# echo "Hello world" #也可以使用双引号。
Hello world
[root@centos7 ~]# echo -e "Hello\tworld" #使用选项-e可以识别\t(一个tab)等特殊字符。
Hello world
**范例5-20:**将单行文本追加到某个文件中。
[root@centos7 ~]# echo "Hello world" >>hello.txt #使用追加重定向符号>>将文本写入文件。
[root@centos7 ~]# cat hello.txt
Hello world
**范例5-21:**使用-n参数的示例。
[root@centos7 ~]# echo "hello";echo "world" #分别可以连接2个命令。
hello
world
#命令执行结果分成了两行输出。
[root@centos7 ~]# echo -n "hello";echo "world" #使用-n选项就可以不换行,输出成一行。
helloworld
**范例5-22:**打印彩色输出。
命令如下:
[root@centos7 ~]# echo -e "\033[30m 黑色字Hello world \033[0m"
黑色字Hello world
[root@centos7 ~]# echo -e "\033[31m 红色字Hello world \033[0m"
红色字Hello world
[root@centos7 ~]# echo -e "\033[32m 绿色字Hello world \033[0m"
绿色字Hello world
[root@centos7 ~]# echo -e "\033[33m 黄色字Hello world \033[0m"
黄色字Hello world
[root@centos7 ~]# echo -e "\033[34m 蓝色字Hello world \033[0m"
蓝色字Hello world
[root@centos7 ~]# echo -e "\033[35m 紫色字Hello world \033[0m"
紫色字Hello world
[root@centos7 ~]# echo -e "\033[36m 天蓝字Hello world \033[0m"
天蓝字Hello world
[root@centos7 ~]# echo -e "\033[37m 白色字Hello world \033[0m"
白色字Hello world
**提示:**上文加粗的递增数字表示字体颜色范围。
图5-1为打印效果图。
图5-1 打印彩色输出效果图
假设要打印的背景色的数字范围为40-47,命令如下:
[root@centos7 ~]# echo -e "\033[40;37m 黑底白字Welcome to Red1Hat\033[0m"
黑底白字Welcome to Red1Hat
[root@centos7 ~]# echo -e "\033[41;37m 红底白字Welcome to Red2Hat\033[0m"
红底白字Welcome to Red2Hat
[root@centos7 ~]# echo -e "\033[42;37m 绿底白字Welcome to Red3Hat\033[0m"
绿底白字Welcome to Red3Hat
[root@centos7 ~]# echo -e "\033[43;37m 黄底白字Welcome to Red4Hat\033[0m"
黄底白字Welcome to Red4Hat
[root@centos7 ~]# echo -e "\033[44;37m 蓝底白字Welcome to Red5Hat\033[0m"
蓝底白字Welcome to Red5Hat
[root@centos7 ~]# echo -e "\033[45;37m 紫底白字Welcome to Red6Hat\033[0m"
紫底白字Welcome to Red6Hat
[root@centos7 ~]# echo -e "\033[46;37m 天蓝白字Welcome to Red7Hat\033[0m"
天蓝白字Welcome to Red7Hat
[root@centos7 ~]# echo -e "\033[47;30m 白底黑字Welcome to Red8Hat\033[0m"
白底黑字Welcome to Red8Hat
**提示:**上文加粗的递增数字表示背景颜色范围。
图5-2为打印的效果图。
图5-2 打印彩色背景色效果图
有关字体颜色内容,在《跟老男孩学Linux运维:Shell编程实战》一书的第9章有详细介绍。
**范例5-23:**打印变量内容。
[root@centos7 ~]# echo $PATH #打印环境变量,在环境变量名前面使用“$”符号。
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@centos7 ~]# test=12345
[root@centos7 ~]# echo $test
12345
**提示:**与echo类似的命令还有printf,这是一个功能更强的输出命令,具体请见后文。
5.8 watch:监视命令执行情况
5.8.1 命令详解
【命令星级】 ★★★☆☆**
【功能说明】
watch命令可以以全屏的方式动态显示命令或程序的执行情况。
【语法格式】
watch [option] [command]
watch [选项] [命令]
【选项说明】
表5-8针对watch命令的参数选项进行了说明。
表5-8 watch命令的参数选项及说明
5.8.2 使用范例
**范例5-24:**每隔一秒高亮显示网络链接数的变化情况。
[root@centos7 ~]# watch -n 1 -d netstat -ant #netstat在后面会详细讲解,-n指定每秒执行命令,-d高亮显示。
Every 1.0s: netstat -ant Sat Oct 24 21:55:15 2020
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address
State
tcp 0 0 0.0.0.0:22 0.0.0.0:*
LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:*
LISTEN
tcp 0 0 10.0.0.201:22 10.0.0.1:63262
ESTABLISHED
tcp 0 0 10.0.0.201:22 10.0.0.1:63327
ESTABLISHED
tcp6 0 0 :::22 :::*
LISTEN
tcp6 0 0 ::1:25 :::*
LISTEN
#Ctrl+c退出。
**范例5-25:**监测当前目录中test3.log文件的变化。
[root@centos7 ~]# echo 12345 >test3.log
[root@centos7 ~]# watch cat test3.log
Every 2.0s: cat test3.log Sat Oct 24 21:58:01 2020
12345
#在另外一个窗口追加一行文本到test3.log
[root@centos7 ~]# echo 12345 >>test3.log
[root@centos7 ~]# watch cat test3.log #回到第一个窗口,可以看到追加的文本出现了,效果有点类似于tail -f或tailf命令的效果。
Every 2.0s: cat test3.log Sat Oct 24 21:58:01 2020
12345
12345
范例5-26:-t参数不显示标题。
[root@centos7 ~]# watch -t cat test3.log
12345
12345
#就是第一行没了。