一、各个连接符的含义
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.。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。