脚本来改变IP地址格式,

时间:2016-01-28 13:59:04

标签: bash

我正在尝试编写一个bash脚本,将任何IP地址从CIDR转换为quad-style。

例如

  

192.168.1.1/24 ===> 192.168.1.1 255.255.255.0

我试着写这个

#!/bin/bash
echo "enter you ip"
read ip
b=`echo $ip | cut -d/ -f1`
a=`echo $ip | cut -d/ -f2`

if a=24 ; then
echo "$b 255.255.255.0"
fi
if a=25; then
echo "$b 255.255.255.128"
fi

我收到了这个输出:

1.1.1.1 255.255.255.0
1.1.1.1 255.255.255.128  

当我进入/ 24或/ 25偶数/ 26时我没有写过如果条件,我得到相同的输出, 我的剧本有什么问题?

4 个答案:

答案 0 :(得分:3)

尝试使用if

的语法
if [ $a -eq 24 ];then

答案 1 :(得分:2)

if a=24 ; then做的是检查作业a=24是否成功。显然,它总是成功的(:D),即if块总是通过测试。

在Bash中你可以这样做:

if ((a==24));then

或者如果您想要便携,请使用David Rosa的方法:

if [ $a -eq 24 ];then

答案 2 :(得分:1)

如果要访问变量的内容,则应使用$ var。

因此,在您的脚本中,您无需测试变量a的内容,而是更改其内容。

您应该使用:

if [ $a -eq 24 ]

而不是if a=24

我建议你看看here以便很好地掌握shell变量。

答案 3 :(得分:1)

在bash中你可以使用

if (( a == 24 )); then