shell位操作符

简介: 位操作符. 位操作符在shell脚本中极少使用。它们最主要的用途看起来就是操作和test从sockets中 读出的变量."Bit flipping"与编译语言的联系很紧密,比如c/c++,在这种语言中它可以 运行得足够快.

位操作符.

位操作符在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

目录
相关文章
|
7月前
|
Shell 程序员 Linux
【Shell 编程指南】shell运算操作符之(())
【Shell 编程指南】shell运算操作符之(())
49 0
|
Shell
SHELL运算操作符与运算命令、原码、补码、反码
原码:最高位是符号位,0代表正数,1代表负数,非符号位为该数字绝对值的二进制。 反码:正数的反码与原码一致,负数的反码是对原码按位取反,只是最高位(符号位)不变。 补码:正数的补码与原码一致,负数的补码是对原码按位取反加1,符号位不变
116 0
|
Shell
Shell 文件或目录操作符(-e、-d、-f、-r、-w、-x)
Shell 文件或目录操作符(-e、-d、-f、-r、-w、-x)
231 0
|
Shell
Shell 整数值操作符(大小等与、-eq、-ne、-ge、-le、-gt、-lt)
Shell 整数值操作符(大小等与、-eq、-ne、-ge、-le、-gt、-lt)
1089 0
|
Shell
shell命令|逻辑操作符
image.png -a 与 image.png -o或 image.png image.png
709 0
|
2月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
86 1
|
27天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
51 2
6种方法打造出色的Shell脚本