有些人可能认为两篇文章中的含义相似,但事实并非如此。虽然第一篇文章讨论了如何在命令结束时使用&将命令移动到后台,但在分析了进程管理之后,第二篇文章将&作为引用文件描述符的方法。这些文章告诉我们,用<和>
合并后,您可以将输入或输出定向到其他位置。
作者:Paul Brown资料来源:Linux China | 2019-03-08 11: 00收藏分享
&Bash中的逻辑(&)
在Bash中,您可以使用&作为AND(逻辑AND)运算符。
有些人可能认为两篇文章中的含义相似,但事实并非如此。虽然第一篇文章讨论了如何在命令结束时使用&将命令移动到后台,但在分析了进程管理之后,第二篇文章将&作为引用文件描述符的方法。这些文章告诉我们,用<和>
合并后,您可以将输入或输出定向到其他位置。
但我们还没有触及&用作AND运算符。那我们来看看吧。
&是一个按位运算符
如果您熟悉二进制操作,则必须听说过AND和OR。这些是按位操作,对二进制数的各个位进行操作。在Bash中,使用&作为AND运算符和|作为OR运算符:
和:
0&0=0
0&1=0
1&0=0
1&1=1
要么:
0 | 0=0
0 | 1=1
1 | 0=1
1 | 1=1
您可以在任意两个数字上使用AND输出结果并回显它:
$ echo $((2&3))#00000010 AND 00000011=00000010
2
$ echo $((120&97))#01111000 AND 01100001=01100000
96
OR(|)也是如此:
$ echo $((2 | 3))#00000010 OR 00000011=00000011
3
$ echo $((120 | 97))#01111000或01100001=01111001
121
描述:
使用((...))告诉Bash双括号之间的内容是某种算术或逻辑运算。 ((2 + 2)),((5%2))(%是模运算符)和(((5%2)+ 1))(等于3)可以工作。像变量一样,使用$来提取值,以便您可以使用它。
空格无效:((2 + 3))相当于((2 + 3))和((2 + 3))。
Bash只能在整数上运行。试着这样做:((5/2)),你会得到2;或者像这样((2.5和7)),但会出错。然后,在按位操作中使用除整数之外的任何东西(这是我们现在所讨论的)通常是你不应该做的事情。
提示:如果要查看二进制中的十进制数字,可以使用bc,这是一个预装在大多数Linux发行版上的命令行计算器。如:
公元前