你好,
我在谷歌上搜索过,但我还没有找到这条线的作用:
smartstat=$(($? & 8))
为了正确看待它,我试图直接访问退出状态的第三位。
SmartCTL 默认使用 8 位。当发生错误(例如磁盘故障)时,它会将第三位设为 1 并将错误发送到日志。
smartstat=$(($? & 8)) 表示有人直接访问第三位。直接来自 smartctl 的手册页:
smartstat=$(($? & 8)) 这仅查看退出状态 $? 的第 3 位。(因为 8=2^3)。如果 SMART 状态检查返回“磁盘故障”,shell 变量 $smartstat 将非零,否则为零。
那么,谁能告诉我 & 在这行代码中做了什么?