Demystifying &&,||和!在Linux上

&&,||和 !操作员可以根据测试结果进行测试并采取操作,但是在您理解逻辑之前,它们可能会有些棘手。

  • 在脸书上分享
  • 分享到Twitter
  • 分享LinkedIn
  • 分享Reddit
  • 通过电子邮件分享
  • 打印资源
查找Linux Code命令通过Electravk Getty Images进行用户评估
电子图像

&&,,,,||, 和操作员允许您在Linux上运行许多有用的命令,但是您首先需要使用比通常使用的IF-then-else命令更棘手的语法。

首先,我应该解释说,这篇文章中的命令示例的一件事是使用我可能称之为速记为“如果”测试的东西。这是一个例子:

$ [-f甜甜圈] $ ECHO%?
1

-f甜甜圈命令询问是否有一个名为“甜甜圈”的文件(-f)。除非我们以“ Echo $?”之后显示返回代码,否则未显示测试的结果。在这种情况下,它是错误的(即不是零),因此我们知道该文件不存在。我们没有甜甜圈!

为了构成类似但相反的测试,我们可以问甜甜圈文件存在。该测试看起来像这样:

$ [!-f甜甜圈] $ echo $?0

那个时候,结果为真(0)。再次没有甜甜圈。但是,这不是通常使用这些命令的方式。反而,&&或者||根据运行的测试结果添加运算符以运行一些命令。例如,如果没有甜甜圈文件,您可能需要提出这样的投诉:

$ [!-f甜甜圈] &&回声“我们需要甜甜圈!”

关键是理解此命令是&&是一个“和”操作员||是“或”操作员。如果您运行如上图所示的命令,则命令的两侧 - 测试和结果命令 - 如果有命名为“甜甜圈”的文件。该命令基本上说:“如果文件命名甜甜圈不存在,使用回声命令。使用&&,每当测试的结果是true时,&&运行。如果结果是错误的,则命令结束。

该命令说:“如果有一个名称的目录mydir”,显示清单:

$ [-d mydir] && ls -ld mydir drwxr -xr -x。2 shs shs 4096 Apr 11 11:46 Mydir

在下一个示例中,我们测试目录是否不存在。如果不是,mkdir命令将创建一个。下面显示的第二个命令验证了目录的创建。如果目录已经存在,则命令将产生故障状态,并mkdir命令会不是运行。

$ [!-d newdir] && mkdir newdir $ ls -ld newdir drwxr-xr-x。2 shs shs 4096 Apr 11 11:54 Newdir

当您使用时,情况恰恰相反||。如果命令的第一部分成功(得出“ true”),则第二部分永远不会运行。

为了&&操作员,实施了以下逻辑:

如果结果,则操作========================如果成功,请运行第二命令,如果失败,请结束

如果您使用命令||,命令的第二部分仅在第一个失败时运行。如果第一部分成功,则命令完成。换句话说,如果两部分都可以,则总体命令是成功的。

为了||操作员,实施了以下逻辑:

如果结果,则操作=======================如果成功,请结束如果失败,则运行第二命令

在下一个示例中,我们询问是否有名为“脚本”的目录。如果没有(即测试结果为“ false”),则该命令的第二部分是运行的,并且mkdir命令创建它。如果有脚本目录,则命令结束了mkdir命令不运行。

$ [-D脚本] ||mkdir脚本$ LS -LD脚本DRWXR-XR-X。2 shs shs 4096 Apr 11 12:16脚本

包起来

虽然&&||行为不同,您可以使用任何一个操作员获得相同的结果。下面的示例说明了这一点。

下面的每个命令将创建一个名为的文件笔记如果一个人不存在,如果这样做,什么也不做。

$ [!-f注释] && touch notes $ [-f注释] ||调笔

同样,下面的两个命令中的每一个都创建了脚本目录如果尚未存在,否则没有进行更改。

$ [!-d脚本] && mkdir脚本$ [-D脚本] ||mkdir脚本

使用时&&||似乎有些棘手,有点练习,一些方便的示例命令确实可以回报。

加入网络世界社区足球竞猜app软件FacebookLinkedIn评论最重要的主题。
有关的:

版权所有©2022 IDG Com足球竞彩网下载munications,Inc。