どうやって、
私はGoogle全体を検索しましたが、この行が何をするのかまだ見つけていません:
smartstat=$(($? & 8))
大まかに言うと、終了ステータスの 3 番目のビットに直接アクセスしようとしています。
SmartCTL はデフォルトで 8 ビットを使用します。ディスク障害などのエラーが発生した場合、3 番目のビットを 1 にしてログにエラーを送信します。
smartstat=$(($? & 8)) 誰かが 3 番目のビットに直接アクセスします。smartctl のマンページから直接:
smartstat=$(($? & 8)) これは、終了ステータス $? のビット 3 のみを調べます。(8=2^3 なので)。シェル変数 $smartstat は、SMART ステータス チェックで「ディスク障害」が返された場合はゼロ以外になり、それ以外の場合はゼロになります。
それで、そのコード行で & が何をしているのか誰か教えてもらえますか?