- - PR -
awkでビット操作
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2006-05-15 13:43
お世話になります。
シェルスクリプト内でビット操作をする必要があります。 あるプログラムを実行すると、リターン値は以下の仕様であり 警告Aの時:0x01 警告Bの時:0x02 警告Cの時:0x04 警告Dの時:0x08 警告Eの時:0x16 そのリターン値をシェルスクリプト内でハンドリングする必要があります。 例えば、リターン値が0x03だったら echo "警告Aです。" echo "警告Bです。" を標準出力します。 そこで、awkでのコーディングを検討していますが なかなかうまくいきません。 ご存知の方、ご教示お願いします。 ----------- ./aaa.exe ret=$? if[ 0x01ビットONの時]; then echo "警告Aです。" fi if[ 0x02ビットONの時]; then echo "警告Bです。" fi ... | ||||
|
投稿日時: 2006-05-15 18:34
何がどう「なかなかうまくいかない」のだろう?
./aaa.exe は awkスクリプト? awkスクリプトの復帰値のセットの仕方だろうか? それとも「if[ 0x01ビットONの時]; then 」の辺りのこと? これ(↑)はawkスクリプトと関係なさそうだね? 検討しているだけではうまくいかないも何もないは当然? | ||||
|
投稿日時: 2006-05-15 19:49
シェルスクリプトでうまくできないので、awkで書けるかどうかという
ことだと思いますが、使っているawkがgawkであれば可能です。
実行結果: bit 0 on bit 2 on bit 3 on 詳しくは gawk の info を。 | ||||
|
投稿日時: 2006-05-16 11:52
bash ビット演算 で検索すると でます。シェルのみで
BASH > num=13 BASH > if [ $(($num & 2)) -eq 0 ]; then echo bit off; fi bit off [ ] の中はスペースで 切り刻む。 気をつけて書かないとすぐに構文エラーになります。 | ||||
1
