shell位操作符

位操作符.

位操作符在shell脚本中极少使用它们最主要的用途看起来就是操作和testsockets

读出的变量."Bit flipping"与编译语言的联系很紧密比如c/c++在这种语言中它可以

运行得足够快.(原文有处on the fly我查了一下好像是没事干的意思没理解)

<<        左移1(每次左移都将乘2)

<<=        左移几位=号后边将给出左移几位

let "var <<= 2"就是左移2(就是乘4)

>>        右移1(每次右移都将除2)

>>=        右移几位

&        按位与

&=        按位与赋值

|        按位或

|=        按位或赋值

~        按位非

!        按位否?(没理解和上边的~有什么区别?)感觉是应该放到下边的逻辑操作中

^        按位异或XOR

^=        异或赋值

逻辑操作:

&&        逻辑与

1 if [ $condition1 ] && [ $condition2 ]

2 # :  if [ $condition1 -a $condition2 ] 相同

3 # 如果condition1condition2都为true那结果就为true.

5 if [[ $condition1 && $condition2 ]]    # 也可以.

6 # 注意&&不允许出现在[ ... ].

注意:&&也可以用在and list(25)但是使用的时候需要依赖上下文.

||        逻辑或

1 if [ $condition1 ] || [ $condition2 ]

2 # :  if [ $condition1 -o $condition2 ] 相同

3 # 如果condition1condition2true那结果就为true.

5 if [[ $condition1 || $condition2 ]]    # 也可以

6 # 注意||不允许出现在[ ... ].

注意:Bashtest每个连接到逻辑操作的状态的退出状态.

例:

if [ "$a" -eq 24 ] && [ "$b" -eq 47 ] if [ "$a" -eq 24 -a "$b" -eq 47 ]得到同一结果。

a=1

let "a=a|0x4"

echo $a

if [ $((a|0x4)) -eq 5 ];then

echo "ada"

fi

原文:

http://blog.csdn.net/zhrmghl/article/details/1346409

原文地址:https://www.cnblogs.com/mydomain/p/2820981.html