簡體   English   中英

更改IP地址格式的腳本,

[英]script to Change ip address format,

我正在嘗試編寫一個bash腳本,將任何IP地址從CIDR轉換為四元樣式。

例如

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  

當我輸入未在if條件中寫入的/ 24或/ 25甚至/ 26時,得到的輸出是相同的,我的腳本出了什么問題?

為if嘗試這種語法

if [ $a -eq 24 ];then

if a=24 ; then怎么辦? if a=24 ; then要做的是檢查分配a=24是否成功。 顯然,它總是成功的(:D),即if塊始終通過測試。

在Bash中,您可以執行以下操作:

if ((a==24));then

或者,如果您想便攜,請使用David Rosa的方法:

if [ $a -eq 24 ];then

如果要訪問變量的內容,則應使用$ var。

因此,在腳本中,您無需更改變量a的內容,而是更改其內容。

您應該使用:

if [ $a -eq 24 ]

而不是if a=24

我建議您在這里了解一下Shell變量。

在bash中,您可以使用

if (( a == 24 )); then

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM