前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >1、判断传入的参数为0或整数的多种思路

1、判断传入的参数为0或整数的多种思路

原创
作者头像
jackxiao
修改2021-11-16 15:41:01
修改2021-11-16 15:41:01
91200
代码可运行
举报
文章被收录于专栏:DevOps运维DevOps运维
运行总次数:0
代码可运行

一、判断字符串是否为整数的多种思路

1)使用sed加正则表达式

  • 删除字符串中的所有数值,看字符串长度是否为0来判断
代码语言:javascript
代码运行次数:0
运行
复制
[ -n "`echo oldboy123|sed 's#[0-9]##g'`" ] && echo char || echo int

char

代码语言:javascript
代码运行次数:0
运行
复制
[ -n "`echo 345678123|sed 's#[0-9]##g'`" ] && echo char || echo int

int

2)用变量的子串替代方法

  • 删除数值部分比较是否等于0
代码语言:javascript
代码运行次数:0
运行
复制
num=oldboy123;[ -z "`echo "${num//[0-9]/}"`" ] && echo int || echo char

char

代码语言:javascript
代码运行次数:0
运行
复制
num=345678123;[ -z "`echo "${num//[0-9]/}"`" ] && echo int || echo char

int

3)用变量的子串替代方法

  • 删除非数值部分比较是本身
代码语言:javascript
代码运行次数:0
运行
复制
num=oldboy123;[ -n "$num" -a "$num" = "${num//[^0-9]/}" ] && echo int || echo char

char

代码语言:javascript
代码运行次数:0
运行
复制
num=456789123;[ -n "$num" -a "$num" = "${num//[^0-9]/}" ] && echo char || echo int

char

4)通过expr计算判断[推荐]

  • expr进行整数计算,如果参与计算的是非整数,就会报错,查看返回值就能确定
  • expr oldboy + 0 &>/dev/null;echo $? 2
  • expr 123 + 0 &>/dev/null;echo $? 0

5)通过双中括号的正则判断

  • 具体用法man bash查看帮助
代码语言:javascript
代码运行次数:0
运行
复制
[[ oldboy123 =~ ^[0-9]+$ ]] && echo int || echo char

char

代码语言:javascript
代码运行次数:0
运行
复制
[[ 345678123 =~ ^[0-9]+$ ]] && echo int || echo char 

int

二、判断字符串是否为0的多种思路

1) 使用字符串表达式-z和-n

代码语言:javascript
代码运行次数:0
运行
复制
[ -z "oldboy" ] && echo "zero" || echo "no zero"

2**)使用变量子串**

代码语言:javascript
代码运行次数:0
运行
复制
char=oldboy;[ ${#char} -eq 0 ] && echo "zero" || echo "no zero"

3)使用expr length函数判断

代码语言:javascript
代码运行次数:0
运行
复制
[ `expr length "oldboy"` -eq 0  ] && echo "zero" || echo "no zero"

4)使用wc -L参数统计

代码语言:javascript
代码运行次数:0
运行
复制
[ `echo oldboy|wc -L` -eq 0  ] && echo "zero" || echo "no zero"  

5)使用awk length函数统计

代码语言:javascript
代码运行次数:0
运行
复制
[ `echo oldboy|awk '{print length}'` -eq 0  ] && echo "zero" || echo "no zero"

三、扩展:判断传入的参数个数是否满足要求

假如要求传入两个参数,则可以直接判断第二个参数是否为空,如果为空,则表示第二个参数不存在

代码语言:javascript
代码运行次数:0
运行
复制
[ -z $2 ] && echo "zero" || echo "no zero"

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、判断字符串是否为整数的多种思路
    • 1)使用sed加正则表达式
    • 2)用变量的子串替代方法
    • 3)用变量的子串替代方法
    • 4)通过expr计算判断[推荐]
    • 5)通过双中括号的正则判断
  • 二、判断字符串是否为0的多种思路
    • 1) 使用字符串表达式-z和-n
    • 2**)使用变量子串**
    • 3)使用expr length函数判断
    • 4)使用wc -L参数统计
    • 5)使用awk length函数统计
  • 三、扩展:判断传入的参数个数是否满足要求
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档