bash - Bash 中的位掩码

标签 bash shell bit-manipulation bitmask

是否可以在 shell 脚本中使用类似以下代码的代码?

var1=0xA (0b1010)
if ( (var1 & 0x3) == 0x2 ){
    ...perform action...
}

只是为了让我的意图 100% 清楚,我想要的操作是检查 var1 在 0x3 (0b0011) 的位并确保它等于 0x2 (0b0010)

 0b1010
&0b0011
_______
 0b0010 == 0x2 (0b0010)

最佳答案

POSIX 算术表达式支持位操作:

if [ $(( var1 & 0x3 )) -eq $(( 0x2 )) ]; then

但是,在 bash 中使用算术语句要简单一些:

if (( (var1 & 0x3) == 0x2 )); then

关于bash - Bash 中的位掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50050373/

相关文章:

python - 使用用户输入的文件路径自动完成

php - PHP exec 和 shell_exec 的问题 - Shell 脚本执行

bash - 为什么有人会在 shell 脚本中使用两个 shebang?

linux - 制作一个可以循环的计算器 - Bash

bash - 从 svn 获取分支创建日期

java - 如何在Java中迭代一个字节的所有位?

json - 如何将两个简单的 JSON 数组与 JQ 合并在一起

linux - 在脚本中调用多个退出点

用于操作 LED 的 Python 按位逻辑

c - 如何返回以二进制补码表示数字所需的最小位数?