ECHO基本使用

  |   0 评论   |   2,846 浏览

shell 编程中,打印字符最常用的是 echo 命令. mac 系统下的命令解释为:

The echo utility writes any specified operands, separated by single blank (` ') characters and followed by a newline (`\n') character, to the standard output.

centos 中的命令解释为:

echo - display a line of text

简单说为:

显示一行文本, 其操作数可以有多个,可以使用单空格分隔,或者是引号(单引号与双引号),最后在输出时会添加一个"\n"字符,最后输出到标准输出中

比如:

[macbook@cc-2 ~]$echo "hello world"
hello world
[mackbook@cc-2 ~]$

注意上面的命令输出实际为:"hello world\n",因此下一行的命令提示符与输出不在同一行;
如果使用-n参数再试试,可以看到下一行的命令提示符与输出字符显示在了一起;

[mackbook@cc-2 ~]$echo -n "hello world"
hello world[mackbook@cc-2 ~]$

如果我要显示多个参数呢,可以这样:

[mackbook@cc-2 ~]$echo a b c
a b c
[mackbook@cc-2 ~]$

上面的命令把三个参数(分别是a,b,c)输出来了.

参数添加双引号与不添加双引号的区别

看下面的代码

[mackbook@localhost ~]$str=`echo -e  "1111111\n2222222\n33333333\n"`
[mackbook@localhost ~]$echo $str
1111111 2222222 33333333
[mackbook@localhost ~]$echo "$str"
1111111
2222222
33333333
[macbook@localhost ~]$
[macbook@localhost ~]$str2=`echo -e  "444\n555\n666\n"`
[macbook@localhost ~]$echo $str $str2
1111111 2222222 33333333 444 555 666
[mackbook@localhost ~]$echo $str "$str2"
1111111 2222222 33333333 444
555
666
[mackbook@localhost ~]$echo "$str" "$str2"
1111111
2222222
33333333 444
555
666

在添加引号后,字符内容会全部输出. 同时会去掉换行符,同时插入一个空格.这个在处理 shell 脚本编程时处理文本时有可能会用到.而对于一般的命令参数引用最好是要用引号的;

在 shell 编程上,一个小技巧:对于上面的代码,把多行字符串转单行,最简单的办法就是先不使用引号输出内容.再把内容存储到变量里面.比如:

str=`echo $str` # 此句命令可以完成多行到单行的转换;

但是有个特殊情况,比如你的字符是以\r\n结尾换行的字符这个则不成立,看下面的代码与相应的输出:

[mackbook@localhost ~]$str=`echo -e  "1111111\r\n2222222\r\n33333333\r\n"`
[mackbook@localhost ~]$echo "$str"
1111111
2222222
33333333
[mackbook@localhost ~]$echo $str
 33333333
[mackbook@localhost ~]$echo `echo  $str`
 33333333
[mackbook@localhost ~]$

评论

发表评论


取消