![](/img/trans.png)
[英]Shell script : Displaying network interface and their corresponding ip address in a table format
[英]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.