命令的连接符【‘&’‘&&’‘||’‘|’】的含义及其用法

一、各个连接符的含义

a && b :代表首先执行前者命令a再执行后命令b,但是前提条件是命令a执行正确才会执行命令b,在a执行失败的情况下不会执行b命令。所以又被称为短路运算符。
前面的命令执行成功后,它后面的命令才被执行

a & b:代表首先执行命令a再执行命令b,如果a执行失败,还是会继续执行命令b。也就是说命令b的执行不会受到命令a的干扰。
表示简单的拼接,A命令语句和B命令语句没有制约关系

a || b:代表首先执行a命令再执行b命令,如果a命令执行成功,就不会执行b命令,相反,如果a命令执行不成功,就会执行b命令。
前面的命令执行失败,它后面的命令才被执行

a | b:代表首先执行a命令,再执行b命令,不管a命令成功与否,都会去执行b命令。
当第一条命令失败时,它仍然会执行第二条命令,表示A命令语句的输出,作为B命令语句的输入执行。

二、用法演示

    以下结果皆由DVWA靶场中low的命令注入模块进行演示

1.a && b

输入

 127.0.0.1&&net user

在这里插入图片描述
可以看到执行了a命令和b命令
接着输入:

127.0.0.11111&&net user

在这里插入图片描述
    因为a命令为假,所以b命令并没有被执行。

2.a & b

输入

127.0.0.1&net user

在这里插入图片描述

    命令a和命令b都成功被执行了。我们接着输入

127.0.0.11111&net user

在这里插入图片描述
    虽然a命令为假,但b命令仍然被执行。接着输入

127.0.0.1&net userss

在这里插入图片描述
    可以看到,当b为假时,a也被执行。
    所以a & b两者之间没有制约关系,互不影响。

3.a || b

输入

127.0.0.1||net user

在这里插入图片描述
看到只执行了a,没有执行b。接着输入

127.0.0.11111||net user

在这里插入图片描述
看到a为假,但是b被执行了。
    所以a || b:前面的命令执行失败,它后面的命令才被执行。

4.a | b

输入

127.0.0.1|net user

在这里插入图片描述
    可以看到即使a命令是对的,但是并没有被执行,执行的是b。接着输入:

127.0.0.111111|net user

在这里插入图片描述
当a为假,还是只执行b命令。
    所以a | b:不管a命令成功与否,都会去执行b命令。

    本站所有文章均为原创,欢迎转载,请注明文章出处: https://blog.csdn.net/weixin_43847838/article/details/111602811.。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐