linux if判断是不是数字

linux if判断是不是数字,第1张

## 方法1

a=1234echo "$a"|[ -n "`sed -n '/^[0-9][0-9]*$/p'`" ] &&echo string a is numbers

第一个-n是shell的测试标志,对后面的串"`sed -n '/^[0-9][0-9]*$/p'`" 进行测试,如果非空,则结果为真。

sed默认会显示所有输入行信息的,sed 的“-n”选项是让sed不要显示,而只显示我们所需要的内容:即后面的表达式所匹配的行,这是通过表达式中加入“p”命令来实现的。

/^[0-9][0-9]*$/他的含义是匹配至少由一位数字构成的行

## 方法2, 可以,不过不是bash实现的,是使用了grep的正则

#if grep '^[[:digit:]]*$' <<<"$1"then

# echo "$1 is number."

#else

# echo 'no.'

#fi

## 方法3

#if [ "$1" -gt 0 ] 2>/dev/null then

# echo "$1 is number."

#else

# echo 'no.'

#fi

## 方法4,case

#case "$1" in

# [1-9][0-9]*)

#echo "$1 is number."

#

# *)

#

#esac

## 方法5,awk

#echo $1| awk '{print($0~/^[-]?([0-9])+[.]?([0-9])+$/)?"number":"string"}'

## 方法5,awk

#if [ -n "$(echo $1| sed -n "/^[0-9]\+$/p")" ]then

# echo "$1 is number."

#else

# echo 'no.'

#fi

## 方法6,expr

expr $1 "+" 10 &>/dev/null

if [ $? -eq 0 ]then

echo "$1 is number"

else

echo "$1 not number"

fi

if为判断语句,判断某个东西是否达到设定的条件。

1,格式为:

if 语句格式

if  条件

then

 Command

else

 Command

fi        别忘了这个结尾

2,if的三种条件表达式:

if command then

if 函数 then    命令执行成功,等于返回0 (比如grep ,找到匹配) 执行失败,返回非0 (grep,没找到匹配)    

if [ expression_r_r_r ] then    表达式结果为真,则返回0,if把0值引向then    

if test expression_r_r_r then    表达式结果为假,则返回非0,if把非0值引向then

1、在shell编程中,输入一个数可以通过read命令来完成。

2、大于0输出该数,小于或等于0,输出0值,可以借助于if结构来判断。

3、示例如下

//read从键盘读取一个数保存到变量i中

//并同时输出:“输入一个数”的字符提示

read -p "输入一个数:" i

//如果用户输入的数i大于0就输出i的值

if ((i > 0))then

    echo $i

    //否则就直接用echo命令输出0

else

    echo 0

fi //这里if语句结束

4、执行效果如下:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7550837.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-07
下一篇2023-04-07

发表评论

登录后才能评论

评论列表(0条)

    保存