gpt4 book ai didi

shell - 常规 shell/bin/sh(不是 bash)是否支持按位运算符

转载 作者:行者123 更新时间:2023-12-04 01:50:14 26 4
gpt4 key购买 nike

我在/bin/sh 中使用按位 & 运算符时遇到错误。我可以让它在 bash 中工作,但是执行代码的脚本在常规 shell 中启动,所以我需要让它在普通的常规 shell 中工作。我需要简单地检查是否设置了某个位,例如第 7 位

以下代码在 bash 中有效,但在/bin/sh 中无效

#!/bin/bash
y=93
if [ $((($y & 0x40) != 0)) ]; then
echo bit 7 is set
fi

我在上面的/bin/sh 中尝试通过删除算术展开

#!/bin/sh
y=93
val=`expr $y & 0x40`
if [ $val != 0 ]; then
echo worked 1
fi

有人可以建议如何在普通的常规 shell 中使用按位运算符吗?

最佳答案

您可以使用除法和模运算来检查特定位:

if [ `expr \( $y / 64 \) % 2` -eq 1 ]; then
echo bit 6 is set
fi

关于shell - 常规 shell/bin/sh(不是 bash)是否支持按位运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40721314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com