[Linux] 在 shell 中判斷變數某個位元是否為 0 或 1

[Linux] 在 shell 中判斷變數某個位元是否為 0 或 1

平常在 C 或 Python 裡面,

要判斷某個變數是否某個位元為 1 很簡單,

只要用語言提供的 bitwise-AND 運算子就可以做到,例如:

if (data & 0x2) != 0:
    # do something...

 

假設我現在是在 Linux shell 裡面,要怎麼做到相同的事呢?

查了一下發現 shell 本身就有支援這種語法了:

if [ "$((data & 2))" != "0" ]; then
    # do something...
fi

 

真沒想到 Linux shell 是如此的強大… :O

 

參考資料:How to perform bitwise operations on hexadecimal numbers in bash?

(本頁面已被瀏覽過 34 次)

發表迴響

你的電子郵件位址並不會被公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料