命令描述
linux的echo命令, 在shell编程中极为常用, 在终端(或者叫屏幕)下打印(屏幕输出)变量value的时候也是常常用到。
echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。
echo默认会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
需要注意的是echo返回的状态值永远是0,也就是,echo执行结果永远是正确的。
比如,你用echo来显示一个未声明赋值的变量名,会显示空,但执行结果是正确的。
命令格式
命令参数
-n 不要在最后自动换行(不要输出衍生的新行)
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出(启用反斜线转义解释)
\a ALERT/BELL 从系统喇叭送出铃声
\b 删除前一个字符;BACKSPACE 向左删除键
\c 最后不加上换行符号;CANCEL 取消行末之换行符号
\f 换行但光标仍旧停留在原来的位置;FORMFEED 换页字符
\n 换行且光标移至行首;NEWLINE 换行字符
\r 光标移至行首,但不换行;RETURN 回车键
\t 插入tab,又叫水平制表,TAB 表格跳位键
\v 与\f相同,又叫垂直制表,VERTICAL TAB 垂直表格跳位键
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符,tab符号的ascii码值是011,以x开首为十六进制
–help 显示帮助
–version 显示版本信息
实例:
1、显示定义的变量的值(也叫输出一个声明的变量值)
-
[root@RHEL6 ~]# echo $USER //显示环境变量USER的变量值
-
root
-
[root@RHEL6 ~]# echo $HOME //显示环境变量HOME的变量值
-
/root
-
[root@RHEL6 ~]# date=`date` //设定date的变量为date命令的输出,注意使用的反单引号,数字1号键左边的按键,还有一种避免混淆的写法是date=$(date)
-
[root@RHEL6 ~]# echo "Today's date time is :$date" //将变量与文本结合一起输出,被双引号括住的内容,将被视为单一字串。它防止通配符扩展,但允许变量扩展。
-
Today's date time is :Tue Jun 9 13:54:30 CST 2015
2、显示文本字符串
-
[root@RHEL6 ~]# echo 'Hi this echo command testing' //被单引号括住的内容,将被视为单一字串。在引号内的代表变数的$符号,没有作用,也就是说,他被视为一般符号处理,防止任何变量替换。
-
Hi this echo command testing
-
[root@RHEL6 ~]# echo Hi this echo command testing ////由于没有特殊符号也可以这样写
-
Hi this echo command testing
3、在echo命令中使用反斜线\b参数就是删除前一个字符
-
[root@RHEL6 ~]# echo -e "Ubuntu \bis \bthe \bbest \bDesktop \bOS"
-
UbuntuisthebestDesktopOS
4、在echo命令中使用制表符空格\t表示插入tab键值
-
[root@RHEL6 ~]# echo -e "Ubuntu \tis \tthe \tbest \tDesktop \tOS" //其实是“空格”加了一个“tab”键
-
Ubuntu is the best Desktop OS
5、在echo命令中使用垂直制表符对应参数是\f和\v
-
[root@RHEL6 ~]# echo -e "Ubuntu \fis \fthe \fbest \fDesktop \fOS" //从第二行起,每一行应该是一个“空格+n个tab”
-
Ubuntu
-
is
-
the
-
best
-
Desktop
-
OS
6、也可以这样\v参数与\t参数混用,最后一个单词OS与Desktop间使用了tab
-
[root@RHEL6 ~]# echo -e "Ubuntu \vis \vthe \vbest \vDesktop \tOS"
-
Ubuntu
-
is
-
the
-
best
-
Desktop OS
-
[root@RHEL6 ~]#
7、使用\n参数(换行且光标移至行首,怎么移至行首的不知道)
-
[root@RHEL6 ~]# echo -e "Ubuntu \nis \nthe \nbest \nDesktop \n\n\nOS"
-
Ubuntu
-
is
-
the
-
best
-
Desktop
-
//这是\n\n\n命令的结果可以体会一下,换了3行;
-
-
OS
-
[root@RHEL6 ~]#
8、\nnn参数利用ACSII(tab符号的ascii码值是011)
-
[root@RHEL6 ~]# echo -e "a\tb\tc" //使用\t参数和使用\011参数得到的结果相同
-
a b c
-
[root@RHEL6 ~]# echo -e "a\011b\011c"
-
a b c
-
[root@RHEL6 ~]#
9、使用-n参数,
不要在最后自动换行(不要输出衍生的新行)
-
[root@RHEL6 ~]# echo "Enter you name" //默认是自动换行的
-
Enter you name
-
[root@RHEL6 ~]# echo -n "Enter you name" //不换行
-
Enter you name[root@RHEL6 ~]# //不是我没换行,而是系统就这么输出的,不信你试试
10、使用-n参数在脚本中的应用
-
vim fristshell //使用vim编辑一个叫fristshell的脚本,脚本内容是2-6行。
-
#!/bin/bash
-
echo -n "Enter your name:" //参数-n的作用是不换行,echo默认是换行
-
read name //从键盘输入,并定义name变量的内容;
-
echo "hello $name,welcome to my program" //显示文本及变量信息
-
exit 0 //退出脚本程序
-
[root@awake ~]# chmod 744 fristshell //赋予文件执行权限
-
如果去掉-n参数那么执行这个fristshell时下面的提示是这样
-
[root@awake ~]# ./fristshell
-
Enter you name:
-
awake
-
hello awake,welcome to my program
-
[root@awake ~]#
-
-
加上-n参数的到的结果是这样,是不是加上-n参数更顺眼一些?
-
[root@awake ~]# ./fristshell
-
Enter you name:awake
-
hello awake,welcome to my program
11、用echo显示变量
-
[root@RHEL6 ~]# version=$(uname -r)
-
[root@RHEL6 ~]# echo $version //显示一个变量
-
2.6.32-358.el6.x86_64
-
[root@RHEL6 ~]# echo $version $PATH //同时显示两个变量
-
2.6.32-358.el6.x86_64 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
-
[root@RHEL6 ~]# echo ${version} ${PATH} //同时显示两个变量的另外一种写法,一般情况下,$var与${var}并没有啥不一样。但是用${}会比较精确的界定变量名称的范围
-
2.6.32-358.el6.x86_64 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
-
[root@RHEL6 ~]# echo `uname -r` //显示一个命令的结果
-
2.6.32-358.el6.x86_64
-
[root@RHEL6 ~]# echo $(uname -r) //显示一个命令的结果的另外写法
-
2.6.32-358.el6.x86_64
-
[root@RHEL6 ~]#
12、其他的例子,显示代有计算式的变量内容
-
[root@awake scripts]# date_d="-200"
-
[root@awake scripts]# echo $date_d
-
-200
-
[root@awake scripts]# echo $((-1*$date_d))
-
200
-
[root@awake scripts]#
阅读(2134) | 评论(0) | 转发(0) |