题主你好,
我这边把你的代码敲了一遍, 没有出现你说的情况.
测试所用代码:
测试结果:
-----
另外, 昨天我和你说的那样改,也是没有问题的,代码及测试截图如下:
-----
-----扩展阅读-----
写在最后: 题主把你那边所用的系统以及代码运行截图发过来,我看一下.
另外关于shell语法这东西, 熟悉了也就好了,你之所以会生气是因为刚接触shell,怎么调都不和你心意,后期基本的语法都玩熟了,也就没这种想法了。 c语言其实也一样,如果没人告诉你语法,而是你自己去猜测,去试,碰一鼻子灰的时候也是现在写shell时的心态.
另外当你熟悉了一门语言后,再去接触其它语言,尤其是语法差异较大的语言,就会觉得很别扭,都是先入为主的思想弄的,反过来想,如果你一开始接触的是shell,可能现在就会觉得c很别扭。你现在可能觉得不是这样的,那是因为你现在会c语言.
所以我想说的是不管是啥语言,不管设计样,既然要用它,就静下心来,盘它就对了:)
=====
希望可以帮到题主, 欢迎追问.
在shell中的条件判断语句格式为:
其中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条)