変数が5つあります。
前任者:
a, b, c, d, x,
1〜255(xの場合は1〜32)の間ではない場合は、エラーメッセージを表示するか、任意のテキストまたは文字を入力してエラーメッセージを表示します。どうすればいいですか?
経験:
echo "CIDR:"
read ip
x="$(echo $ip |cut -d "/" -f2)"
a="$(echo $ip |cut -d "." -f1)"
b="$(echo $ip |cut -d "." -f2)"
c="$(echo $ip |cut -d "." -f3)"
d="$(echo $ip |cut -d "." -f4 | cut -d "/" -f1)"
ppl が 3 のような誤った IP 形式を入力すると、次1337.-135.abcxyz.!@#@#/12
のエラーメッセージが表示されます。Error: wrong IP format
...etc。
答え1
ipcalcを使用してIPアドレスを確認できます
男性の場合:
ipcalc - perform simple manipulation of IP addresses
はい
ipcalc -cs 192.168.1.1/30 && echo OK || echo NOT_OK
または
ipcalc -cs "$a.$b.$c.$d/$x" && echo OK || echo NOT_OK
または
ipcalc -cs "$ip" && echo OK || echo NOT_OK
答え2
以下のように、IP検証に正規表現を使用できます。
\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b