Linux中,&和&&,|和||区别

Posted 风与沙的较量

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中,&和&&,|和||区别相关的知识,希望对你有一定的参考价值。

1、& 表示任务在后台执行,比如运行一个jar文件,但是希望是后台运行可以执行
java -jar test.jar &

2、&& 表示前一条命令执行成功时,才执行后一条命令 ,如 echo 'step1‘ && echo ‘step2’
step1执行成功才会执行step2
step2执行失败,step2不会执行

3、| 表示管道,上一条命令的输出,作为下一条命令参数,如 echo ‘yes’ | wc -l
nl ./test | sed ‘2,5d’

将test里面的内容和对应行号输出,作为sed 命令的输入参数
sed ‘2,5d’ 输入参数A
输入参数A:(nl ./test的输出)

4、|| 表示上一条命令执行失败后,才执行下一条命令,echo 'step1‘ || echo ‘step2’
step1执行失败才会执行step2
step2执行成功,step2不会执行

 

linux shell中的&& || 和()

1. linux命令返回值介绍

  shell 在执行某个命令时,会有一个返回值,该值保存在shell变量$?中。当$?为0时,表示命令执行成功;当$?为1时,表示命令执行失败。

2. &&

  语法格式如下:

    command1 && command2 &&...

  • command之间用&&连接,实现逻辑与功能
  • 当&&左边的命令执行成功(command的返回值$?=0)时,&&右边的command才会被执行。
  • 只要有一个command执行不成功(command返回值$?=1)时,后面的command就不会被执行

3. ||

  语法格式如下:

    command1 || command2 || .....

  • command 之间使用||链接,实现逻辑或功能
  • 当||左边的command执行不成功(command的返回值$?=1)时,||右边的command才会被执行。
  • 只要有一个command执行成功(command的返回值$?=0)时,后面的command就不会被执行。

4 ()

  语法格式如下:

    (command1;command2;.....)

  • 一个command需要独占一个物理行,如果需要将多个comand放在同一行,命令之间需要使用命令分隔符(;)分隔。执行的效果等同于多个独立的命令单独执行。
  • ()表示在当前的shell中将多个command作为一个整体执行。注:command组合都是在当前工作目录下被执行的,尽管command中有切换目录的command。
  • command组合常与命令执行控制(&&或||)结合使用。

以上是关于Linux中,&和&&,|和||区别的主要内容,如果未能解决你的问题,请参考以下文章

Linux中,&和&&,|和||区别

linux shell中的&& || 和()

Linux shell的&&和||

Linux中Shell重定向

linux后台执行命令:&和nohup的用法,确实很实用

&&,||,&,|的用法