0

你好,

我在谷歌上搜索过,但我还没有找到这条线的作用:

smartstat=$(($? & 8))

为了正确看待它,我试图直接访问退出状态的第三位。

SmartCTL 默认使用 8 位。当发生错误(例如磁盘故障)时,它会将第三位设为 1 并将错误发送到日志。

smartstat=$(($? & 8)) 表示有人直接访问第三位。直接来自 smartctl 的手册页:

smartstat=$(($? & 8)) 这仅查看退出状态 $? 的第 3 位。(因为 8=2^3)。如果 SMART 状态检查返回“磁盘故障”,shell 变量 $smartstat 将非零,否则为零。

那么,谁能告诉我 & 在这行代码中做了什么?

4

1 回答 1

2

& 是一个“按位与”运算符。设 A=15

A = 1111(二进制)

8 = 1000(二进制)

A & B = 1000(二进制)

于 2013-09-27T01:46:19.643 回答