一。最基本的用法:输入什么,就显示什么。
echo a b c //打印显示 a b c ,并且默认自动换行
演示:
[root@localhost ~]# echo a b c
a b c
echo -n a b c //打印显示a b c 但是不换行
演示:
[root@localhost ~]# echo -n a b c
a b c[root@localhost ~]#
echo要显示指定的字符串,后面的字符串可以加上双引号,也可以不加双引号,但是建议加上上引号
演示:
[root@localhost ~]# echo "a b c"
a b c
二。echo $PATH
会显示PATH路径,这表明$是一个特殊符号
在$后的字符串是一个变量
echo $HOSTNAME //系统自带的变量
echo $USER //当前用户名
echo $UID //当前用户的UID
变量前面要加符号 $
由于符号$在echo中有特殊的含义,所以要想打印出一个普通的$符号,则我们就需要用到转义字符
演示:
[root@localhost ~]# echo "\$"
$
对比一下:
[root@localhost ~]# echo $UID
0
[root@localhost ~]# echo "\$UID"
$UID
对比echo的双引号"",单引号'',和反向单引号``的区别:
演示:
[root@localhost ~]# echo "$UID"
0
演示:
[root@localhost ~]# echo '$UID'
$UID
演示:
[root@localhost ~]# echo `echo $UID`
0
总结:
单引号为强引用,双引号为弱引用,反向单引号为替换命令。单引号是“傻符号”有什么输出什么,反向单引号是最“聪明的符号”,双引号结余他们之间。
与反向单引号功能相同的还有 $()
演示:
[root@localhost ~]# echo $(whoami)
root
那什么时候用这个反向单引号``,或者 $()
当我们用一个命令去调用另一个命令的时候,使用它们。被调用的命令写在反向单引号或者$()之中。
三。echo除了回显,还有选项
-e //激活转义字符。支持在引号之中写的字符串,有一些特殊的功能。比如说在双引号里面加上转义字符。
-n //不在字符的最后自动换行,因为echo默认回显后自动换行 等同于转义字符的 \c
转义字符:
\a 发出警报
\b 删除前一个字符
\c 最后不加上换行符
\f 换行,但是光标仍旧停留在原来的位置
\n 换行且光标移动至行首
\r 光标移动至行首,但不换行, 其实用法是,替换前面的内容。
\t 插入tab,横向制表符
\v 与\f相同
\\ 插入\字符,不用带选项 -e
\nnn插入nnn(八进制)所代表的ASCII字符
对比演示:
1.[root@localhost ~]# echo "aaa\c"
aaa\c
2.[root@localhost ~]# echo -e "aaa\c"
aaa[root@localhost ~]#
3.[root@localhost ~]# echo -e "aaa\a"
aaa
4.[root@localhost ~]# echo -n "aaa"
aaa[root@localhost ~]#
5.[root@localhost ~]# echo -e "aaa\b"
aaa
[root@localhost ~]# echo -e "aaa\bxyz"
aaxyz
[root@localhost ~]# echo -e "\baaa" aaa
6.[root@localhost ~]# echo -e "aaaa\n"
aaaa
[root@localhost ~]#
7.[root@localhost ~]# echo -e "aaaa\r"
aaaa
[root@localhost ~]#
[root@localhost ~]# echo -e "aaa\rzxf"
zxf
[root@localhost ~]#
8.[root@localhost ~]# echo -e "aaa\tbbb"
aaabbb
[root@localhost ~]#
9.[root@localhost ~]# echo -e "aaa\vbbb"
aaa
bbb
[root@localhost ~]#
10.[root@localhost ~]# echo -e "aaa\fbbb"
aaa
bbb
[root@localhost ~]#
11.[root@localhost ~]# echo "aaa\\bbb"
aaa\bbb
[root@localhost ~]#
12.[root@localhost ~]# echo -e '\0101' //用echo打印ASCII表的值,0表示八进制数
A
[root@localhost ~]#
说明:当echo加上选项 -e 后,在引号中加上转义字符,就会不仅回显,而且还会执行转义字符的含义
四。大括号:{} //打印重复字符串的简化形式
演示:
1.[root@localhost ~]# echo file{1,2,3}
file1 file2 file3
[root@localhost ~]#
2.[root@localhost ~]# cd /testdir/
[root@localhost testdir]# ls
dir dir1 etcback2016-07-27 lost+found
[root@localhost testdir]# touch 1 2 3
[root@localhost testdir]# ls
1 2 3 dir dir1 etcback2016-07-27 lost+found
[root@localhost testdir]# rm -f {1,2,3}
[root@localhost testdir]# ls
dir dir1 etcback2016-07-27 lost+found
[root@localhost testdir]#
五。把一个命令的输出打印,给另一个命令作为参数,其实就是echo中命令的调用,就是反向单引号,或$()的使用
演示:
1.[root@localhost testdir]# echo "This system's name is $(hostname)"
This system's name is localhost.localdomain
[root@localhost testdir]#
2.[root@localhost testdir]# echo "i am" `whoami`
i am root
或
[root@localhost testdir]# echo "i am `whoami`"
i am root
[root@localhost testdir]#
六。查看当前系统所用的shell
演示:
[root@localhost testdir]# echo $SHELL
/bin/bash
[root@localhost testdir]#
查看当前系统支持哪些shell
演示:
[root@localhost testdir]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
[root@localhost testdir]#
七。再练习中曾经遇到过的问题
//目的是想一次显示三个文件,下面演示比较,重复的内容合在一起时,file应该与合在一起
[root@localhost testdir]# echo file {1,2,3}
file 1 2 3
[root@localhost testdir]#
比较
[root@localhost testdir]# echo file{1,2,3}
file1 file2 file3
[root@localhost testdir]#
//目的是想一次显示三个文件,下面演示比较,说明前面的$echo仅仅是一个变量根本没有赋值,所以显示为空,进而只显示了三个文件。
[root@localhost testdir]# echo $echo file{1,2,3}
file1 file2 file3
[root@localhost testdir]#
比较
[root@localhost testdir]# echo $echo
[root@localhost testdir]#
比较
[root@localhost testdir]# echo $echo
1
[root@localhost testdir]#
比较
[root@localhost testdir]# export echo=2
[root@localhost testdir]# echo $echo file{1,2,3}
2 file1 file2 file3
[root@localhost testdir]#
到此为止,就解开了我的,一个疑问,为什么在一开始没有给echo赋值前,echo $echo file{1,2,3}还是显示三个文件
八。echo 打印带有彩色的文字
文字色:
演示:
分析:
\e[1;31m //将颜色设置为红色
\e[0m //将颜色重新置回
颜色码:
重置 0 黑色 30 红色 31 绿色 32 ××× 33 蓝色 34 洋红 35 青色 36 白色 37
背景色:
演示:
分析:
显示背景颜色为绿色
颜色码:重置 0 黑色 40 红色 41 绿色 42 ××× 43 蓝色 44 洋红 45 青色 46 白色 47
文字闪动:
演示:
上面的字体会不停的闪动。
红色数字处还有其他数字参数,0关闭所有属性,1设置高亮度(加粗),4下划线,5闪烁,7反显,8消隐
练习:
用echo命令回显一个闪烁的等边三角形
形如:
*
***
*****
*******
演示:
转载于:https://blog.51cto.com/11857750/1831515