关于一个设置ip地址的linux脚本

发布网友 发布时间:2022-04-21 17:39

我来回答

3个回答

热心网友 时间:2022-04-18 23:51

你那个if [ $?==1 ]有问题,shell里是没有==这种符号的,要么用-eq,要么用=,且=作判断时两边都需空格,否则视为赋值。所以改为 if [ $? = 1 ]或if [ $? -eq 1 ],你试试。

热心网友 时间:2022-04-19 01:09

#!/bin/sh
#menu2
#Main menu script
#ignore ctrl-c and QUIT interrupts
trap "" 2 3 15
#check ip address
function checkip ()
{
for var in `echo $1 | awk -F. '{print $1,$2,$3,$4}'`
do
if [[ $var =~ ^[0-9]+$ ]]; then
if [ $var -ge 1 -a $var -le 255 ]; then
 return 1
else
 return 0
fi
 return 0
fi
done
}
#configure ip manually
echo 'please input ip address'
read ipaddr
echo 'please input netmask'
read netmask
echo 'please input gateway'
read gateway
checkip $ipaddr && checkip $netmask && checkip $gateway
 if [ "$?" -eq 0 ]; then
   echo "Wrong IP configuration, please reset"
   exit
 else
   ifconfig eth0 $ipaddr netmask $netmask
   route add default gw $gateway
 fi

热心网友 时间:2022-04-19 02:44

可以用这个匹配判断IP地址,'\<(25[0-5]|2[0-4][0-9]|((1[0-9]{2})|([1-9][0-9]))|[1-9])(\.(25[0-5]|2[0-4][0-9]|((1[0-9]{2})|([1-9][0-9]))|[0-9])){3}\>'

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com