我有下一个命令以获取我当前的IP地址:
ip=$(ifconfig | awk '/inet addr/{print substr($2,6)}' | grep -v "127")
我想检查ip是以19开头还是以10开头,if语句
if [[ $ip =~ "^19*" ]]; then some instructions; fi
但它不起作用,我希望你能帮到这个
答案 0 :(得分:3)
首先,您的正则表达式会检查19
,199
,1999
,^1[90]
等,而不是" 19或10"。 "的正则表达式以19或10"开头。将是if [[ $ip =~ ^1[90] ]]; then
。
其次,如果引用正则表达式,则将其匹配为字符串,即字面意思。你可以用
re='^1[90]'
if [[ $ip =~ $re ]]; then
优良作法是将正则表达式存储在单独的变量中,然后使用该变量(不带引号)来避免所有引用问题:
{{1}}
参考文献:
答案 1 :(得分:0)
删除" ^ 19 *"周围的双引号
并循环遍历$ ip,因为它可能包含ips列表