在[1]当中,我们介绍了尖括号(<>)以及它们的一些用法。在这篇文章,我们继续来深入探讨尖括号的更多其它用法。
通过使用
例如,在进行备份文件的时候不确定备份是否完整,就需要去确认某个目录是否已经包含从原目录中复制过去的所有文件。你可以试一下这样操作:
diff
[2] 命令是一个逐行比较两个文件之间差异的工具。在上面的例子中,就使用了
要注意,在
我尝试在我的图片目录和它的备份目录执行上面的命令,输出的是以下结果:
diff
5d4
输出结果中的
看到这里你可能会想到,既然可以通过
确实如此,这个例子可以简化成这样:
sort-r
Here 字符串
除此以外,尖括号的重定向功能还有另一种使用方式。
使用 |)来传递变量的用法,相信大家都不陌生。假如想要把一个字符串变量转换为全大写形式,你可以这样做:
myvar="Hello World"echo$myvar|tr'[:lower:]''[:upper:]'HELLO WORLD
tr[3] 命令可以将一个字符串转换为某种格式。在上面的例子中,就使用了 tr 将字符串中的所有小写字母都转换为大写字母。
要理解的是,这个传递过程的重点不是变量,而是变量的值,也就是字符串 Hello World。这样的字符串叫做 HERE 字符串,含义是“这就是我们要处理的字符串”。但对于上面的例子,还可以用更直观的方式的处理,就像下面这样:
tr'[:lower:]''[:upper:]'<<
这种简便方式并不需要使用到 echo 或者管道,而是使用了我们一直在说的尖括号。
总结
使用 这两个简单的符号,原来可以实现这么多功能,Bash 又一次为工作的灵活性提供了很多选择。
当然,我们的介绍还远远没有完结,因为还有很多别的符号可以为 Bash 命令带来更多便利。不过如果没有充分理解它们,充满符号的 Bash 命令看起来只会像是一堆乱码。接下来我会解读更多类似的 Bash 符号,下次见!
via: https://www.linux.com/blog/learn/2019/1/more-about-angle-brackets-bash
作者:Paul Brown[5] 选题:lujun9972 译者:HankChow 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出