我正在尝试10.AB.C9
从 5 位数字构建三个八位字节12ABC
:
12
= 第一个八位字节AB
= 第二个八位字节C
= 第三个八位字节
我现有的代码有两种情况会导致生成正确的 IP。如果 C 有一个前导零,例如:02,那么第三个八位字节将为 027,并且 IP 不能有硬编码的前导零。
five_digits=12620
if [ "${five_digits:4:1}" -eq 0 ]; then
ip_main="10.${five_digits:2:2}.9"
gateway_ip_prefix="10.${five_digits:2:2}.2"
elif [ "${five_digits:4:1}" -ne 0 ]; then
ip_main="10.${five_digits:2:2}.${five_digits:4:1}9"
gateway_ip_prefix="10.${five_digits:2:2}.${five_digits:4:1}2"
上面的代码解决了 C 中的前导零问题
第二种情况是 A 为零,这意味着第二个八位字节将具有前导零。我不确定如何处理这种情况并希望使脚本更简单。
我会将每个八位组分开,并从每个八位组中删除任何前导零,然后将它们连接在一起。像这样的东西:
例如,将输入字符串
12345
转换为10.34.59
;12055
到10.5.59
; 和12000
到10.0.9
。