发布网友 发布时间: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}\>'