首先要明白一个概念:bash中所有的变量都是字符串。对变量进行数值计算时,只不过是把字符串转换成数字,然后计算,计算后再把结果数字转换为字符串。 再说"==“和”-eq"的区别 "=="是判断字符串是否相等。 "-eq"是判断字符串对应的数字值是否相等。 举个栗子。 创建eq.sh脚本 >vi eq.sh 内容如下 #!/bin/...
准确来说是适用对象不同:-eq 和= 都可以用来条件测试进行判断两个操作对象是否相同,但是有如下区别:-eq 适用于整数数字,不能进行字符串的条件测试= 既适用于数字,又适用于字符串。 我做了下测试: bash$ [ 1 -eq 1 ] && echo "ok" ok $ [ 1 = 1 ] && echo "ok" ok $ [ "a" -eq "a" ] ...
if [ $condition -gt 0 ] #gt表示greater than,也就是大于,同样有-lt(小于),-eq(等于) then : # 什么都不做,退出分支 else echo "$condition" fi 变量扩展/子串替换 在与> 重定向操作符结合使用时,将会把一个文件清空,但是并不会修改这个文件的权限。如果之前这个文件并不存在,那么就创建这个文件。 :...
/bin/bashnum1=10num2=20if[$num1-eq$num2];thenecho"两个数相等"elif[$num1-lt$num2];thenecho"第一个数小于第二个数"elseecho"第一个数大于第二个数"fi 在上面的示例中,我们使用了-eq、-lt和-gt比较运算符来比较两个整数的大小关系,并根据结果输出相应的信息。
在bash中,整数比较是通过使用比较运算符来实现的。以下是一些常用的比较运算符: - `-eq`:等于,用于比较两个整数是否相等。 - `-ne`:不等于,用于比较两个整数是否不相等。 - `-gt...
bash中常用的条件测试有三种: 1、整数测试: -eq 等于 -lt 小于 -ne 不等于 -gt 大于 -le 小于等于 -ge 大于等于 integer:整数 INTEGER1=63 INTEGER2=77 [ $INTEGER1 -eq $INTEGER2 ] [[ $INTEGER1 -eq $INTEGER2 ]] test $INTEGER1 -eq $INTEGER2 ...
在此示例中,命令 whoami 的输出与单词“root”进行比较。对于字符串比较 ==, !=, < 应该使用 and 对于数值比较 eq, ne,lt 和 gt 应该使用。 Bash 示例 6. 增强的括号 在上述所有示例中,我们仅使用单括号来包围条件表达式,但 bash 允许使用双括号,作为单括号语法的增强版本。
有没有这样的限制: -eq: 适用于或偏向于 "数字相等" = : 选用于或偏向于 "字符串相等" 我之前写 shell script 时在这个地方出过错, 一直没有弄明白. bash 有用关注1收藏1 回复 阅读30.9k 3 个回答 得票最新 TechliveZheng 2.1k11315 发布于 2012-12-18 尽量使用 extended test 吧,即 [[ ]],里面...
这个时候a就是当做数字在使用,因为在Bash中条件判断中,‘-eq’表示的是数字的比较操作。 # a=5 # if (($a == 5)); then echo $a; fi 这个时候a就是当做数字在使用(如果不是数字,则结果为否),因为在Bash中(())表示的是对数字的操作。
-eq - 比较运算符 20 - 第二个变量 如果给定的表达式有效,则执行第一个命令,否则执行第二个命令。在上述测试命令中,可以使用方括号 [] 来代替 test 命令。不过有一点需要记住,[ 标记和要比较的变量之间需要有空格: [ 10 -eq 20 ] && echo "true" || echo "false" ...