linux中的if函数怎么用啊?

linux中的if函数怎么用啊?,第1张

题主你好,

我这边把你的代码敲了一遍, 没有出现你说的情况.

测试所用代码:

测试结果:

-----

另外, 昨天我和你说的那样改,也是没有问题的,代码及测试截图如下:

-----

-----扩展阅读-----

写在最后: 题主把你那边所用的系统以及代码运行截图发过来,我看一下.

另外关于shell语法这东西, 熟悉了也就好了,你之所以会生气是因为刚接触shell,怎么调都不和你心意,后期基本的语法都玩熟了,也就没这种想法了。 c语言其实也一样,如果没人告诉你语法,而是你自己去猜测,去试,碰一鼻子灰的时候也是现在写shell时的心态.

另外当你熟悉了一门语言后,再去接触其它语言,尤其是语法差异较大的语言,就会觉得很别扭,都是先入为主的思想弄的,反过来想,如果你一开始接触的是shell,可能现在就会觉得c很别扭。你现在可能觉得不是这样的,那是因为你现在会c语言.

所以我想说的是不管是啥语言,不管设计样,既然要用它,就静下心来,盘它就对了:)

=====

希望可以帮到题主, 欢迎追问.

含义:

1、if 条件判断关键字。

2、[ ] 语法要求。

3、-f 文件比较运算符,如果 filename为常规文件,则为真 。

4、$home 取变量的值,如果.sh文件里面没有该就是则会取用户系统变量!你可以在终端中执行一下 echo $home 看看是什么路径。

5、$1 取输入的第一个参数.例: sh xxx.sh 111 那么此时 $1的值就是 111。

Linux *** 作系统是基于UNIX *** 作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类 *** 作系统,并且使用人数还在迅猛增长。

Linux是一套免费使用和自由传播的类Unix *** 作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的 *** 作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络 *** 作系统。它主要用于基于Intel x86系列CPU的计算机上。

题主你好,

先说作用再分析.

作用: 判断 != 两边的字符串是否不相等, 即判断"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中的说明了,下图是手册里的部分关于支持哪些判断的一个截图:

截图中红框框选的就是本题中用到的!=,用来判断两个字符串是否不相等.

=====

希望可以帮到题主, 欢迎追问.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7517093.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存