概述
# **一、判断字符串是否为整数的多种思路**
## **1)使用sed加正则表达式**
* 删除字符串中的所有数值,看字符串长度是否为0来判断
```shell
[ -n "`echo oldboy123|sed 's#[0-9]##g'`" ] && echo char || echo int
```
> char
```shell
[ -n "`echo 345678123|sed 's#[0-9]##g'`" ] && echo char || echo int
```
> int
## **2)用变量的子串替代方法**
* 删除数值部分比较是否等于0
```shell
num=oldboy123;[ -z "`echo "${num//[0-9]/}"`" ] && echo int || echo char
```
> char
```shell
num=345678123;[ -z "`echo "${num//[0-9]/}"`" ] && echo int || echo char
```
> int
## **3)用变量的子串替代方法**
* 删除非数值部分比较是本身
```shell
num=oldboy123;[ -n "$num" -a "$num" = "${num//[^0-9]/}" ] && echo int || echo char
```
> char
```shell
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查看帮助
```
[[ oldboy123 =~ ^[0-9]+$ ]] && echo int || echo char
```
> char
```
[[ 345678123 =~ ^[0-9]+$ ]] && echo int || echo char
```
> int
# **二、判断字符串是否为0的多种思路**
## **1)使用字符串表达式-z和-n**
```shell
[ -z "oldboy" ] && echo "zero" || echo "no zero"
```
## 2**)使用变量子串**
```shell
char=oldboy;[ ${#char} -eq 0 ] && echo "zero" || echo "no zero"
```
## **3)使用expr length函数判断**
```shell
[ `expr length "oldboy"` -eq 0 ] && echo "zero" || echo "no zero"
```
## **4)使用wc -L参数统计**
```shell
[ `echo oldboy|wc -L` -eq 0 ] && echo "zero" || echo "no zero"
```
## **5)使用awk length函数统计**
```shell
[ `echo oldboy|awk '{print length}'` -eq 0 ] && echo "zero" || echo "no zero"
```
# **三、扩展:判断传入的参数个数是否满足要求**
假如要求传入两个参数,则可以直接判断第二个参数是否为空,如果为空,则表示第二个参数不存在
```shell
[ -z $2 ] && echo "zero" || echo "no zero"
```
最后
以上就是勤奋皮带为你收集整理的linux判断参数小于1,其他1-判断传入的参数为0或整数的多种思路的全部内容,希望文章能够帮你解决linux判断参数小于1,其他1-判断传入的参数为0或整数的多种思路所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复