在shell脚本中是否可以使用以下代码?
var1=0xA (0b1010)
if ( (var1 & 0x3) == 0x2 ){
...perform action...
}
只是为了使我的意图100%清楚我所需的动作是在0x3(0b0011(处检查var1的位,并确保其等于0x2(0b0010(
0b1010
&0b0011
_______
0b0010 == 0x2 (0b0010)
posix算术表达式支持位操作:
if [ $(( var1 & 0x3 )) -eq $(( 0x2 )) ]; then
但是,使用bash
中的算术语句要简单一些:
if (( (var1 & 0x3) == 0x2 )); then
是的,这是完全可能的:
#!/bin/bash
var1=0xA # (0b1010)
if (( (var1 & 0x3) == 0x2 ))
then
echo "Match"
fi