遇到了shell的模式匹配问题,求指教
我要判断一个字符串是mac地址还是ip地址,
mac:xx:xx:xx:xx:xx:xx
ip:x.x.x.x
我想用if的双方括号模式匹配判断
if [[ addr = ..:* ]]
then
echo mac
else
echo "not mac"
fi
注意我这里请教的双方括号的判断问题,我看《linux命令行和shell脚本编程宝典》这本书里写的是双方括号能用正则表达式,但是这里怎么点号不起作用,有点蒙,请指教
------解决方案--------------------#!/bin/bash
addr=xx:xx:xx:xx:xx:xx
if [[ "$addr" =~ ":" ]]
then
echo mac
else
echo "not mac"
fi
chmod u+x test.sh
./test.sh
------解决方案--------------------换做我的话,会用以下方法:
#
!/bin/sh
a="00:11:22:33:44:55"
#a="192.168.10.1"
if (echo $a
------解决方案--------------------
grep "^..:..:..:..:..:..$" >/dev/null 2>&1)
then
echo mac
else
echo not mac
fi