echo命令
Shell中的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。
命令格式:
echo [选项] 内容
echo可以用为普通输出和重定向输出
普通输出
1.显示普通字符串:(引号完全可以忽略)
[root@movie ~]# echo '我是个快乐的Carrie.' 我是个快乐的Carrie. [root@movie ~]# echo 我是个快乐的Carrie. 我是个快乐的Carrie. [root@movie ~]# echo "我是个快乐的Carrie." 我是个快乐的Carrie. [root@movie ~]#
2.如果不想忽略,且想显示,需要转义字符
[root@movie ~]# echo "\"我是个快乐的Carrie."\" "我是个快乐的Carrie."
3.显示变量
read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量
[root@movie ~]# source test.sh It is a test [root@movie ~]# cat test.sh #! /bin/bash i=name echo "$name It is a test"
4.echo -e(-e 输出转义字符)
不加-e选项的结果 [root@movie ~]# sh test.sh It is a test \n 这是一个测试 [root@movie ~]# cat test.sh #! /bin/bash i=name echo "$name It is a test \n 这是一个测试" 加-e的结果 [root@movie ~]# sh test.sh It is a test 这是一个测试 [root@movie ~]# cat test.sh #! /bin/bash i=name echo -e "$name It is a test \n 这是一个测试"
常用的转义字符如下:
\b 转义后相当于按退格键(backspace) ,但前提是"\b"后面存在字符
\c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于echo -n
\n 换行
\f 换行
\v 与\f相同;
\t 转以后表示插入tab,即制表符
\r 光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符,只看这段文字描述的话可能不容易理解
\\ 表示插入"\"本身;
6.引号不同结果会不相同
[root@movie ~]# echo 'date' date [root@movie ~]# echo `date` 2020年 11月 04日 星期三 18:38:24 CST
注意: 第一个是单引号,第二个是反引号
重定向输出
重定向输出顾名思义就是改变其输出的位置
1.将内容重定向到文件中
需要注意的是重定向后,文件原来的内容就会被覆盖
[root@movie ~]# cat test.sh #! /bin/bash i=name echo -e "$name It is a test \n 这是一个测试" [root@movie ~]# echo 'Carrie' > test.sh [root@movie ~]# cat test.sh Carrie