ユーザーは次のように私のBashスクリプトにmacアドレスを書き込むことができます:
read -p "enter mac-address " mac-address
これで、このMacアドレスが「特定の」形式と一致することを確認するためにifステートメントを確認したいと思います。つまり、FF:FF:FF:FF:FF:FF
ではないことでなければなりませんFFFFFFFFFFFF
。長さも6x2で正確でなければなりません。
ベストアンサー1
最も怠惰な方法は走ることです
if [[ $mac_address == ??:??:??:??:??:?? ]]; then echo Heureka; fi
ただし、これは16進文字列であることを確認しません。だから重要なことなら
if [[ $mac_address =~ ^[0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]$ ]]; then echo Heureka; fi
より良いかもしれません。後者は次のように短縮できます。
if [[ $mac_address =~ ^([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}$ ]]; then
echo Heureka;
fi
パターンが一致すれば、長さが合っていることを確認する必要もないと思います。