其中elif和else不是必须的,如果只需判断一次,那么if...fi即可。值得注意的是if后面中括号[]中的语句[的后面和]的前面必须要有空格。
下面通过判断大小和文件是否存在看一下判断语句的用法:
-gt 大于 (greater than);
-lt 小于(less than);
-eq 等于(equal);
-ne 不等于(not equal);
-ge 大于等于(greater equal)
-le 小于等于(less equal)。
题主你好,
先说作用再分析.
作用: 判断 != 两边的字符串是否不相等, 即判断"result"还" "是否不相等.
但是光说作用了,其实对于实际使用还是没有太大帮助.
-----
分析:
上面是shell脚本中,if表达式的一个最基本的结构,3个红框框选的部分是if表达式中必须要有的语法规定的部分.
条件表达式 和 中间一堆语句 是我们要自定义的.
而意思也很好理解, 当 条件表达式 成立,则执行中间那一堆语句.
而条件表达式部分,一般是使用test命令来实现,你代码中的[]其实是test命令的一种表现形式,也就是说:
if test "result" != " " 与 if [ "result" != " " ] 它俩是一个玩意儿.
-----
所以为了好理解,我们就用第一种形式,if test "result" != " ",去理解.
test是测试的意思, 测试的是啥呢? 就是test后面的 "result" 与 " "是否 !=,而 !=表示不相等,因此测试的是"result" 与 " " 是否不相等,如果不相等则成立,就会执行if语句块了,而就题主问题中的if [ "result" != " " ],肯定是成立的,因此相应if语句块也会被执行.
-----
再举一个小例子,题主可以试一下:
执行之后,题主可以将"b"换成"a",再执行一下看看应该什么都不会输出,因为"a" != "a"这个条件不成立,所以不会执行相应的echo语句.
-----
扩展阅读:
具体test都能判断哪些条件呢?具体要看一下man test中的说明了,下图是手册里的部分关于支持哪些判断的一个截图:
截图中红框框选的就是本题中用到的!=,用来判断两个字符串是否不相等.
=====
希望可以帮到题主, 欢迎追问.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)