精华内容
下载资源
问答
  • 本文内容:判断用户输入的参数是否数字 在shell中如何进行计算? 方式一 [root@XiaoPeng scripts]# echo $((1+2)) 3 方式二 [root@XiaoPeng scripts]# expr 2 + 3 5 [root@XiaoPeng scripts]# 注意:使用...

    本文内容:判断用户输入的参数是否为数字

    在shell中如何进行计算?

    方式一

    [root@XiaoPeng scripts]# echo $((1+2))  
    3

    方式二

    [root@XiaoPeng scripts]# expr 2 + 3
    5
    [root@XiaoPeng scripts]# 
    

    注意:使用方式二的时候,要求必须要有间隔。如果使用的是乘法,号必须进行转义写为 \

    [root@XiaoPeng scripts]# expr 2 * 3
    expr: 语法错误
    [root@XiaoPeng scripts]# expr 2 \* 3
    6
    [root@XiaoPeng scripts]# 
    

    如何判断用户输入的变量值是否为数字?

    首先大家先来看一下使用echo 进行计算的时候,字符 + 数字会是什么效果。

    [root@XiaoPeng scripts]# echo $((a+1))
    1
    [root@XiaoPeng scripts]# echo $((a+2))
    2

    在这个例子中,shell 会把字符当做0来计算,如果我们想判断用户输入的是否为数字,那就可以使用 echo $((变量+1))去判断,如果为1,那么用户输入的为字符,如果为数字,那么结果不为1.
    但是这样会有个问题,假如用户输入的数字为0呢?

    使用方式二解决

    [root@XiaoPeng scripts]# expr b + 3
    expr: 非数值参数

    假设用户输入的参数为字符,那么使用expr就会计算失败,这时候 $? 就不为0,那么我们只需要看 $? 是否为0即可判断用户输入的参数是否为数字了。

    例子

    #!/bin/bash -
    
    read -p "Please enter a number:" number
    expr $number + 1 >/dev/null 2>&1
    [ $? -ne 0 ] && echo " $number is not number" || echo "$number is a  number"
    

    执行结果

    [root@XiaoPeng scripts]# bash intnumber.sh 
    Please enter a number:1
    1 is a  number
    [root@XiaoPeng scripts]# bash intnumber.sh 
    Please enter a number:a
     a is not number

    版权所有:arppinging

    欢迎关注的我的个人微信公众号

    二维码

    展开全文
  • 转载于:https://www.cnblogs.com/521linux/p/9463995.html

     

     

     

     

     

    转载于:https://www.cnblogs.com/521linux/p/9463995.html

    展开全文
  • 先写一些基本语法: 1、字符串判断 str1 = str2 当两个串有相同内容、长度时为真 str1 != str2 当串str1和str2不等时为真 -n str1 当串的长度大于0时为真(串非空) ...2、数字判断
    先写一些基本语法:

    1、字符串判断

    str1 = str2      当两个串有相同内容、长度时为真
    str1 != str2      当串str1和str2不等时为真
    -n str1        当串的长度大于0时为真(串非空)
    -z str1        当串的长度为0时为真(空串)
    str1           当串str1为非空时为真

    2、数字的判断

    int1 -eq int2    两数相等为真
    int1 -ne int2    两数不等为真
    int1 -gt int2    int1大于int2为真
    int1 -ge int2    int1大于等于int2为真
    int1 -lt int2    int1小于int2为真
    int1 -le int2    int1小于等于int2为真

    3 文件的判断

    -r file     用户可读为真
    -w file     用户可写为真
    -x file     用户可执行为真
    -f file     文件为正规文件为真
    -d file     文件为目录为真
    -c file     文件为字符特殊文件为真
    -b file     文件为块特殊文件为真
    -s file     文件大小非0时为真
    -t file     当文件描述符(默认为1)指定的设备为终端时为真

    3、复杂逻辑判断

    -a         与
    -o        或
    !        非



      下面是一些使用实例:

    #!/bin/sh
    myPath="/var/log/httpd/"
    myFile="/var /log/httpd/access.log"

    #这里的-x 参数判断$myPath是否存在并且是否具有可执行权限
    if [ ! -x "$myPath"]; then
    mkdir "$myPath"
    fi

    #这里的-d 参数判断$myPath是否存在
    if [ ! -d "$myPath"]; then
    mkdir "$myPath"
    fi

    #这里的-f参数判断$myFile是否存在
    if [ ! -f "$myFile" ]; then
    touch "$myFile"
    fi

    #其他参数还有-n,-n是判断一个变量是否是否有值
    if [ ! -n "$myVar" ]; then
    echo "$myVar is empty"
    exit 0
    fi

    #两个变量判断是否相等
    if [ "$var1" == "$var2" ]; then
    echo '$var1 eq $var2'
    else
    echo '$var1 not eq $var2'
    fi




           if list then
               do something here
           elif list then
               do another thing here
           else
             do something else here
           fi  

    EX1:

    #!/bin/sh

    SYSTEM=`uname -s`     #获取操作系统类型,我本地是linux

    if [ $SYSTEM = "Linux" ] ; then     #如果是linux的话打印linux字符串
    echo "Linux"
    elif [ $SYSTEM = "FreeBSD" ] ; then  
    echo "FreeBSD"
    elif [ $SYSTEM = "Solaris" ] ; then
    echo "Solaris"
    else
    echo "What?"
    fi     #ifend

    基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。


     见: http://blog.chinaunix.net/uid-20753645-id-1877952.html

    展开全文
  • = str2 当串str1和str2不等时为真 -n str1 当串的长度大于0时为真(串非空) -z str1 当串的长度为0时为真(空串) str1 当串str1为非空时为真 2、数字判断 int1 -eq int2 两数相等为真 int1 -ne int2 两数不等...
    先写一些基本语法:

    1、字符串判断

    str1 = str2      当两个串有相同内容、长度时为真
    str1 != str2      当串str1和str2不等时为真
    -n str1        当串的长度大于0时为真(串非空)
    -z str1        当串的长度为0时为真(空串)
    str1           当串str1为非空时为真

    2、数字的判断

    int1 -eq int2    两数相等为真
    int1 -ne int2    两数不等为真
    int1 -gt int2    int1大于int2为真
    int1 -ge int2    int1大于等于int2为真
    int1 -lt int2    int1小于int2为真
    int1 -le int2    int1小于等于int2为真

    3 文件的判断

    -r file     用户可读为真
    -w file     用户可写为真
    -x file     用户可执行为真
    -f file     文件为正规文件为真
    -d file     文件为目录为真
    -c file     文件为字符特殊文件为真
    -b file     文件为块特殊文件为真
    -s file     文件大小非0时为真
    -t file     当文件描述符(默认为1)指定的设备为终端时为真

    3、复杂逻辑判断

    -a         与
    -o        或
    !        非



      下面是一些使用实例:

    #!/bin/sh
    myPath="/var/log/httpd/"
    myFile="/var /log/httpd/access.log"

    #这里的-x 参数判断$myPath是否存在并且是否具有可执行权限
    if [ ! -x "$myPath"]; then
    mkdir "$myPath"
    fi

    #这里的-d 参数判断$myPath是否存在
    if [ ! -d "$myPath"]; then
    mkdir "$myPath"
    fi

    #这里的-f参数判断$myFile是否存在
    if [ ! -f "$myFile" ]; then
    touch "$myFile"
    fi

    #其他参数还有-n,-n是判断一个变量是否是否有值
    if [ ! -n "$myVar" ]; then
    echo "$myVar is empty"
    exit 0
    fi

    #两个变量判断是否相等
    if [ "$var1" == "$var2" ]; then
    echo '$var1 eq $var2'
    else
    echo '$var1 not eq $var2'
    fi




           if list then
               do something here
           elif list then
               do another thing here
           else
             do something else here
           fi  

    EX1:

    #!/bin/sh

    SYSTEM=`uname -s`     #获取操作系统类型,我本地是linux

    if [ $SYSTEM = "Linux" ] ; then     #如果是linux的话打印linux字符串
    echo "Linux"
    elif [ $SYSTEM = "FreeBSD" ] ; then  
    echo "FreeBSD"
    elif [ $SYSTEM = "Solaris" ] ; then
    echo "Solaris"
    else
    echo "What?"
    fi     #ifend

    基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。
    展开全文
  • 文章目录流程控制之if判断一、单分支if1、语法2、示例二:双分支if1、语法2、示例三:多分支if1、语法:示例1:猜年龄示例2:查询成绩示例3:判断是否数字四 、练习1、编写脚本,命令行传入一个文件路径,判断文件...
  • ”的用法:(1)判断命令、脚本或函数等程序是否执行成功;(2)若在脚本中调用执行“exit 数字”,则会返回这个数字给“$?”变量;(3)如果是在函数里,则通过“return 数字”,把这个数字以函数返回值的...
  • linux--shell---判断参数大小

    千次阅读 2019-05-13 17:46:07
    #判断是否输入两个参数,是的话将两个参数传递给下一条指令 #若不是两个参数,则打印输出内容输出并且退出exit脚本不执行下一个指令。 if [ $# -ne 2 ] ;then echo '请输入两位数字' exit fi if [ $num1 -gt $num2...
  • Linux Shell高级技巧

    2016-10-23 23:08:00
    Linux Shell高级技巧(一) http://www.cnblogs.com/stephen-liu74/archive/2011/12/22/2271167.html一、将输入信息转换为大写字符后再进行条件判断二、为调试信息设置输出级别三、判断参数是否数字四、判断整数变量...
  • 判断是否设置了该参数 echo $TMOUT 如果输出空 或 0 表示不超时,大于0的数字 n 表示 n 秒没有输入超时 修改变量的值 vi /etc/profile 将 TMOUT=num 改为 TMOUT=0 让配置生效 source /etc/profile sshd...
  • 为了方便我们每个人的学习,这里将给出Linux Shell高级技巧五篇系列博客...三、判断参数是否数字 四、判断整数变量的奇偶性 五、将Shell命令赋值给指定变量,以保证脚本的移植性 六、获取当前时间距纪元时间(1970年..
  • 三、判断参数是否数字 四、判断整数变量的奇偶性 五、将Shell命令赋值给指定变量,以保证脚本的移植性 六、获取当前时间距纪元时间(1970年1月1日)所经过的天数 七、非直接引用变量 八、在循环中使用管道的技巧 九...
  • linux API之文件操作

    2020-05-09 13:59:43
    Linux API之文件操作 ...errno本身实质是一个int类型的数字,当上层通过系统调用时可以通过errno判断是否成功。 常见的errno错误对应关系: #define EPERM 1 /* Operation not permitted / #define ENOENT 2 / ...
  • 1,判断一个数字是否则在1,2,3之中. #!/bin/bash read -p "pls input a number:" n case "$n" in 1) echo "变量是1" ;; 2) echo "变量是2" ;; 3) echo "变量是3" ...
  • 本示例是对使用者输入的数据(或位置变量)进行判断是否可用,然后在符合条件时调用代码块; #!/bin/bash #shell name: shell_vaild.sh #used:输入密码后判断密码是否是由数字和字母组成,判断输入的IP是否合法等 #...
  • linux的基本命令(四)

    2020-10-16 15:38:44
    十二、printf printf ’输出类型输出格式’ 输出内容 输出类型: %ns: 输出字符串。n是数字指代输出几个字符 %ni: 输出整数。n是数字指代输出几个数字 %m.nf: 输出浮点数。... 10 判断变量 x是否大于10 x>=10 大
  • Linux里的shell脚本命令

    2020-09-24 17:32:15
    1.使用shell脚本输出当前的目录: 结果展示: ...输入数字判断是否大于0,如果大于0则将该数字-1并输出,否则+1输出. 变量运算的多种写法(比较运算符) -eq 比较是否相等 -ne 比较不相等 -gt 比较大于 -ge
  • shell字符串比较、判断是否数字 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne "$b" ] -gt 大于,如:if [ ...
  • 可以用在数字变量上 比较 描述 n1 -eq n2 检查n1是否与n2相等 n1 -ge n2 检查n1是否大于或等于n2 n1 -gt n2 检查n1是否大于n2 n1 -le n2 检查n1是否小于或等于n2 n1 -lt n2 检查n
  • 8.判断输入的是否是整数 1.变量值的定义 name=abc 名称如何定义:以下划线 数字和字母的组合,须以字母或下划线开头,见名知意 等号两边不允许有空格 abin_age 第一种书写方式 ABIN_AGE 系统的书写方式 Abin_Age ...
  • shell字符串比较、判断是否数字 二元比较操作符,比较变量或者比较数字。注意数字与字符串的区别。 整数比较 -eq 等于,如:if [ “$a” -eq “$b” ] -ne 不等于,如:if [ “$a” -ne “$b” ] -gt 大于,如:if [ “$...

空空如也

空空如也

1 2 3 4 5 6
收藏数 106
精华内容 42
热门标签
关键字:

linux判断变量是否数字

linux 订阅