Bash 中的位掩码
Bit mask in Bash
是否可以在 shell 脚本中使用类似以下代码的代码?
var1=0xA (0b1010)
if ( (var1 & 0x3) == 0x2 ){
...perform action...
}
只是为了让我的意图 100% 清楚,我想要的操作是检查 var1 在 0x3 (0b0011) 的位并确保它等于 0x2 (0b0010)
0b1010
&0b0011
_______
0b0010 == 0x2 (0b0010)
是的,这完全有可能:
#!/bin/bash
var1=0xA # (0b1010)
if (( (var1 & 0x3) == 0x2 ))
then
echo "Match"
fi
POSIX 算术表达式支持位操作:
if [ $(( var1 & 0x3 )) -eq $(( 0x2 )) ]; then
不过,在bash
中使用算术语句会更简单一些:
if (( (var1 & 0x3) == 0x2 )); then
是否可以在 shell 脚本中使用类似以下代码的代码?
var1=0xA (0b1010)
if ( (var1 & 0x3) == 0x2 ){
...perform action...
}
只是为了让我的意图 100% 清楚,我想要的操作是检查 var1 在 0x3 (0b0011) 的位并确保它等于 0x2 (0b0010)
0b1010
&0b0011
_______
0b0010 == 0x2 (0b0010)
是的,这完全有可能:
#!/bin/bash
var1=0xA # (0b1010)
if (( (var1 & 0x3) == 0x2 ))
then
echo "Match"
fi
POSIX 算术表达式支持位操作:
if [ $(( var1 & 0x3 )) -eq $(( 0x2 )) ]; then
不过,在bash
中使用算术语句会更简单一些:
if (( (var1 & 0x3) == 0x2 )); then