Shell Here String(内嵌字符串)
Here String 是 Here Document 的一个变种,它的用法如下:
这种写法告诉 Shell 把 string 部分作为命令需要处理的数据。例如,将小写字符串转换为大写:
双引号和单引号是有区别的,双引号会解析其中的变量(当然不写引号也会解析),单引号不会,请看下面的代码:
有了引号的包围,Here String 还可以接收多行字符串作为命令的输入,如下所示:
command <<< string
command 是 Shell 命令,string 是字符串(它只是一个普通的字符串,并没有什么特别之处)。这种写法告诉 Shell 把 string 部分作为命令需要处理的数据。例如,将小写字符串转换为大写:
[mozhiyan@localhost ~]$ tr a-z A-Z <<< one ONEHere String 对于这种发送较短的数据到进程是非常方便的,它比 Here Document 更加简洁。
双引号和单引号
一个单词不需要使用引号包围,但如果 string 中带有空格,则必须使用双引号或者单引号包围,如下所示:[mozhiyan@localhost ~]$ tr a-z A-Z <<< "one two three" ONE TWO THREE
双引号和单引号是有区别的,双引号会解析其中的变量(当然不写引号也会解析),单引号不会,请看下面的代码:
[mozhiyan@localhost ~]$ var=two [mozhiyan@localhost ~]$ tr a-z A-Z <<<"one $var there" ONE TWO THERE [mozhiyan@localhost ~]$ tr a-z A-Z <<<'one $var there' ONE $VAR THERE [mozhiyan@localhost ~]$ tr a-z A-Z <<<one${var}there ONETWOTHERE
有了引号的包围,Here String 还可以接收多行字符串作为命令的输入,如下所示:
[mozhiyan@localhost ~]$ tr a-z A-Z <<<"one two there > four five six > seven eight" ONE TWO THERE FOUR FIVE SIX SEVEN EIGHT
总结
与 Here Document 相比,Here String 通常是相当方便的,特别是发送变量内容(而不是文件)到像 grep 或者 sed 这样的过滤程序时。所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频