Case ステートメントの 16 進値の一致

Case ステートメントの 16 進値の一致

0x0016進終了コード(成功、0x40 - 0x4Fユーザーエラー、0x50 - 0x5F内部エラーなど)を返すように記録されたプロセスの終了コードを一致させようとしています。ステートメントを介して終了コードを処理したいのですが、case「明らかな」解決策は一致しません。

$ $val = 10

$ case $val in
>   0xA) echo match;;
>   *) echo no match;;
> esac
no match

caseステートメントで16進値を一致させるための読み取り可能な方法はありますか?

ベストアンサー1

はい、二重括弧です。算術演算子case16進値が一致するように10進数で表示されます。

$ echo $((0xA))
10

$ case $val in
>   $((0xA))) echo match;;
>   *) echo no match;;
> esac
match

おすすめ記事