比较IP';s或使用CIDR通知Linux生成IP

比较IP';s或使用CIDR通知Linux生成IP,linux,cidr,Linux,Cidr,我最近开始使用UNIX系统。我为拉斯皮和我创建了一个小项目 我坚持认为在谷歌等网站上找不到任何帮助。我的问题是: 是否可以在带有CIDR通知的变量中添加IP地址?我最终在一个变量中获得了IP地址,但无法获得CIDR通知。我的计划是创建一个脚本,将当前的网络掩码与网络掩码列表进行比较。是这样的: NETMASK=/sbin/ifconfig eth0 | grep Mask | cut-d:“-f4 CIDR=0 如果[$NETMASK-eq'255.255.255.0']] 然后 CIDR=24

我最近开始使用UNIX系统。我为拉斯皮和我创建了一个小项目

我坚持认为在谷歌等网站上找不到任何帮助。我的问题是:

是否可以在带有CIDR通知的变量中添加IP地址?我最终在一个变量中获得了IP地址,但无法获得CIDR通知。我的计划是创建一个脚本,将当前的网络掩码与网络掩码列表进行比较。是这样的:

NETMASK=
/sbin/ifconfig eth0 | grep Mask | cut-d:“-f4

CIDR=0
如果[$NETMASK-eq'255.255.255.0']]
然后
CIDR=24
否则如果
[$NETMASK-eq'255.255.255.128']]
然后
CIDR=25
fi
该文件的输出为:“估计的整整数表达式”(从德语翻译成英语)

是否有人知道我必须如何比较网络掩码,或者知道根据实际网络掩码获得CIDR通知的其他方法?(网络掩码应可更改)

谢谢你的进一步帮助

干杯


Maesi

让ip和awk完成工作:

CIDR=`/sbin/ip address show eth0|awk '/inet / {split($2, a, "/"); print a[2]}'`

哇!谢谢…这是一个非常舒适的解决方案,因为我可以使用你的命令,而不是32

@顺便说一句

在寻找解决方案后,我终于在IF比较中找到了它

为了比较IP,我必须使用“=”作为运算符,而不是“-eq”

-等式(整数) =(字符串)

无论如何谢谢你!我会用你的命令,这比我的命令更容易

干杯 梅西