Linux系统学习:每日linux命令2 echo(在标准输出中显示输入的字符串)

linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法


echo

功能说明:在显示器上显示一段文字,一般起到一个提示的作用。echo 命令用来在标准输出中显示输入的字符串。
语   法:echo [-ne][字符串]或 echo [--help][--version]

其中选项-n表示输出文字后不换行;字符串能加引号,也能不加引号。

用echo命令输出加引号的字符串时,将字符串原样输出;

用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号(默认会加换行符)。

-e

若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
   \a 发出警告声;
   \b 删除前一个字符;
   \c 最后不加上换行符号;
   \f 换行但光标仍旧停留在原来的位置;
   \n 换行且光标移至行首;
   \r 光标移至行首,但不换行;
   \t 插入tab;
   \v 与\f相同;
   \\ 插入\字符;
   \nnn 插入nnn(八进制)所代表的ASCII字符;
–help 显示帮助
–version 显示版本信息

 

 

 

例一:
$ echo -e "a\tb\tc\nd\te\tf"
a       b       c
d       e       f
 
上例运用 \t 来区隔 abc 还有 def ,以及用 \n 将 def 换至下一行。

例二:
$ echo -e "\141\011\142\011\143\012\144\011\145\011\146"
a       b       c
d       e       f

与例一的结果一样,只是使用了八进制编码来表示。

 

这个显示出来的结果不一样,为什么呢?

 

 

例三:
$ echo -e "\x61\x09\x62\x09\x63\x0a\x64\x09\x65\x09\x66"
a       b       c
d       e       f
 
与例二差不多,只是换用了十六进制编码。


例四:
$ echo -ne "a\tb\tc\nd\te\bf\a"
a       b       c
d       f $
 
因为 e 字母后面是删除键(\b),因此输入结果就没有e了。
在结束时听到一声铃响,那是\a的杰作!
由于同时使用了 -n 选项,因此 shell prompt 紧接在第二行之后。
若不用 -n 的话,那在\a后再加个\c,也是同样的效果。
 


事实上,在日后的 shell 操作及 shell script 设计上,echo 命令是最常用的命令之一。
比方说,用 echo 来检查变量值:
$ A=B
$ echo $A
B
$ echo $?
0

1.显示普通字符串:

echo "It is a test"

这里的双引号完全可以省略,以下命令与上面实例效果一致:

echo It is a test

2.显示转义字符

echo "\"It is a test\""

结果将是:

"It is a test"

同样,双引号也可以省略

 

疑问:默认不是不开启转义字符吗?为什么这个就识别了转义字符呢?

 

3.显示变量

read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量

#!/bin/sh
read name 
echo "$name It is a test"

以上代码保存为 test.sh,name 接收标准输入的变量,结果将是:

[root@www ~]# sh test.sh
OK                     #标准输入
OK It is a test        #输出

4.显示换行

echo -e "OK! \n" # -e 开启转义
echo "It is a test"

输出结果:

OK!

It is a test

5.显示不换行

#!/bin/sh
echo -e "OK! \c" # -e 开启转义 \c 不换行
echo "It is a test"

输出结果:

OK! It is a test

6.显示结果定向至文件

echo "It is a test" > myfile

7.原样输出字符串,不进行转义或取变量(用单引号)

echo '$name\"'

输出结果:

$name\"

8.显示命令执行结果

echo `date`

注意: 这里使用的是反引号 `, 而不是单引号 '。

结果将显示当前日期

Thu Jul 24 10:08:46 CST 2014

参考资料:

1.https://www.runoob.com/linux/linux-shell-echo.html

2.https://blog.csdn.net/lizhi200404520/article/details/8819762

3.https://blog.csdn.net/VIP_WangSai/article/details/72592649

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安安csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值