如何在Shell中判断一个变量是否为整数

来自:    更新日期:早些时候
如何在Shell中判断一个变量是否为整数~

两种方式:
1、使用sed加正则表达式
思路:删除一个字符串中的所有数字,看字符串的长度是否为0,如果不为0,则不是整数。
if [ -n "`echo char | sed 's/[0-9]//g'`" ] then
echo "char"
else
echo "number"
fi
2、利用expr做计算时变量或字符串必须是整数的规则,把一个变量或字符串和一个已知的整数(非0)相加,看命令返回的值是否为0.如果为0,就认为加法的变量或字符串为整数,否则就不是。
i=5
expr $I + 6 &>/dev/null
echo $?
如果输出的是0,那么表明i是整数,反之则表示为非整数。其中$?表示的是最后运行的代码的返回值
上述判断中,有&>表示的就是不管是什么,都重定向到/dev/null中。

希望可以帮到你,望采纳。

可以使用字符串过滤出非0到9之间的字符。
[root@managevm1 ~]# a=123
[root@managevm1 ~]# echo $a | grep "[^0-9]" && echo "a isn't an integer" \
|| echo "a is an integer"
a is an integer
[root@managevm1 ~]# a=123.4
[root@managevm1 ~]# echo $a | grep "[^0-9]" && echo "a isn't an integer" \
|| echo "a is an integer"
a isn't an integer
也可以写为
[root@managevm1 ~]# echo $a | grep -v "[0-9]*" && echo "a isn't an integer"\
|| echo "a is an integer"

原理:
一、利用expr做计算时变量或字符串必须是整数的规则,把一个变量或字符串和一个已知的整数(非0)相加,看命令返回的值是否为0.如果为0,就认为加法的变量或字符串为整数,否则就不是。
i=5
expr $I + 6 &>/dev/null
echo $?
如果输出的是0,那么表明i是整数,反之则表示为非整数。其中$?表示的是最后运行的代码的返回值
上述判断中,有&>表示的就是不管是什么,都重定向到/dev/null中。

二、使用sed加正则表达式
思路:删除一个字符串中的所有数字,看字符串的长度是否为0,如果不为0,则不是整数。
if [ -n "`echo char | sed 's/[0-9]//g'`" ]
then
echo "char"
else
echo "number"
fi
三、用变量的子串替换
思路:如果num的长度不为0,并且把num中的非数字部分删除,然后看结果是不是等于num本身,如果两者成立,那么就是数字,反之亦然。
if [ -n "$num" -a "$num" = "${num//[^0-9]/}" ]
then
echo "char"
else
echo "number"
fi


如何在Shell中判断一个变量是否为整数视频

相关评论:
  • 18872931553用shell脚本判断文件是否在变化
    席冯诞你可以对文件进行md5校验,校验结果不一致的就执行4.

  • 18872931553shell如何判断一个变量是数字还是字符串?
    席冯诞1. 可以通过使用`grep`命令结合正则表达式来判断变量是否为数字。整数由0到9这10个数字组成,如果字符串中包含任何非数字字符,则可以判断它不是整数。正则表达式中表示非数字为`[^0-9]`。2. 数字的概念非常广泛,包括正数、负数、分数、百分数、指数等。可以使用`sed`命令过滤掉这些符号,如正数的加...

  • 18872931553shell 如何判断一个变量是数字还是字符串?
    席冯诞1、可以借助于grep命令,结合正则表达式,整数是有[0-9]这10个数字组成,如果字串中有不是这10个数字的字符即表示不是整数,用正则表达式表示为[^0-9]。2、数字的概念很广,比如正数、负数、分数、百分数、指数等等,这个可以借助于sed命令,过滤掉类似的符号比如正数+、负数-、百分数%。3、结合上面...

  • 18872931553如何在shell脚本中,判断一个基本命令执行是否成功
    席冯诞用特殊变量:$?判断前一个命令的执行是否成功(或者说是返回码)执行成功变量的值是0,不是零表示没有执行成功例如:注意:一定要在命令执行后立即判断,否则后面的代码会冲掉$?变量的值。shell脚本中判断上一个命令是否执行成功shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执...

  • 18872931553如何在Shell中判断一个变量是否为整数
    席冯诞一、利用expr做计算时变量或字符串必须是整数的规则,把一个变量或字符串和一个已知的整数(非0)相加,看命令返回的值是否为0.如果为0,就认为加法的变量或字符串为整数,否则就不是。i=5 expr $I + 6 &>\/dev\/null echo $?如果输出的是0,那么表明i是整数,反之则表示为非整数。其中$?表示...

  • 18872931553在shell中如何判断一个变量是否为空
    席冯诞在Shell脚本中,判断一个变量是否为空是常见的需求。以下是几种常见的方法:首先,你可以使用双引号来检查变量是否为空。例如:shell !\/bin\/sh para1=" " # 假设para1为空 if [ ! -n "$para1" ]; then echo "IS NULL"else echo "NOT NULL"fi 其次,直接通过变量进行判断,如果变量未...

  • 18872931553如何在Shell中判断一个变量是否为整数
    席冯诞可以使用字符串过滤出非0到9之间的字符。[root@managevm1 ~]# a=123 [root@managevm1 ~]# echo $a | grep "[^0-9]" && echo "a isn't an integer" \\ || echo "a is an integer"a is an integer [root@managevm1 ~]# a=123.4 [root@managevm1 ~]# echo $a | grep "...

  • 18872931553如何在shell脚本中,判断一个基本命令执行是否成功
    席冯诞这个退出状态通过 $? 内置变量获取 在shell脚本的编写过程中 逻辑运算 ( && ||)就是由退出状态决定 0 表示 true(正常) 非零表示false(异常),异常退出值可以有很多不同的值,这些值就表示了错误类型。function exit_status(){ ( exit $1 )} 这个函数会根据参数返回错误状态 exit_status ...

  • 18872931553如何在shell脚本中,判断一个基本命令执行是否成功
    席冯诞每一条基本命令执行后都有一个返回码,该返回码是用$?表示,执行成功的返回码是0,例如:if [ $? -ne 0 ];then 上一命令执行失败时的操作 else 上一命令执行成功时的操作 fi

  • 18872931553如何在shell脚本中,判断一个基本命令执行是否成功
    席冯诞1.连接到相应的Linux主机,进入Linux命令行状态,等待shell命令的输入。2.在Linux命令行下,输入shell命令:Telnet192.168.120.209。3.最后,按下回车键执行shell指令,此时会看到telnet并没有连接成功。注意事项 附件:LINUX系统外壳原理 作为操作系统的外壳,Linux系统的外壳为用户提供了使用操作系统的接口。

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网