2013-09-27 65 views
0

HOwdie做,smartctl讀取bitmasking

我已經找遍了谷歌和我還沒有找到這一行做了什麼:

smartstat = $(?($ & 8))

要把它放在角度來看,我試圖直接訪問退出狀態的第三位。

SmartCTL默認使用8位。發生錯誤時,例如發生故障的磁盤時,會使第三位爲1並向日志發送錯誤。

smartstat = $(($?& 8))有人直接訪問第三位。從直接的smartctl讀取手冊頁:

smartstat = $(?($ & 8)) 這看起來只有在退出狀態$的第3位? (因爲8 = 2^3)。如果SMART狀態檢查返回「磁盤失敗」,則shell變量$ smartstat將爲非零,否則爲零。

那麼,誰能告訴我&在這行代碼中做了什麼?

回答

2

&是一個「按位和」運算符。設A = 15

A = 1111(二進制)

8 = 1000(二進制)

一個& B = 1000(二進制)

+0

太謝謝你了 – Jimmy