Linux

大兔子大兔子 提交于 2021-01-28 11:59:49

分号

分号,没有任何逻辑关系的连接符。当多个命令用分号连接时,各命令之间的执行成功与否彼此没有任何影响,都会一条一条执行下去。

[root@localhost ~]# echo test>test.txt; cat test.txt
test

逻辑或

逻辑或,当用此连接符连接多个命令时,前面的命令执行成功,则后面的命令不会执行。前面的命令执行失败,后面的命令才会执行。

# 不存在 test.txt,所以会执行 echo命令
[root@localhost ~]# ls test.txt || echo notExist

逻辑与

逻辑与,当用此连接符连接多个命令时,前面的命令执行成功,才会执行后面的命令,前面的命令执行失败,后面的命令不会执行,与 || 正好相反。

[root@localhost ~]# touch test.txt && echo test > test.txt && cat test.txt
test

区分&

& 放在启动参数后面表示此进程为后台进程

需要区分以下两个示例

# 将docker stop置为后台执行 然后执行 docker rm
docker stop $(docker ps -q) & docker rm $(docker ps -aq)

# 执行完docker stop后 执行docker rm
docker stop $(docker ps -q) && docker rm $(docker ps -aq)

第一条命令执行可能会报错,因为如果容器还没完全停止之前,是不能删除的。第二个命令就没有该问题

管道符

管道符,当用此连接符连接多个命令时,前面命令执行的正确输出,会交给后面的命令继续处理。若前面的命令执行失败,则会报错,若后面的命令无法处理前面命令的输出,也会报错。

比如经常搭配管道符与grep一起使用

[root@localhost ~]# ls | grep git

参考

https://www.jb51.net/article/136261.htm

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!