首页 > 系统相关 >Shell多个命令间隔符号;、&、&&、| 和 || 区别

Shell多个命令间隔符号;、&、&&、| 和 || 区别

时间:2023-09-18 20:12:56浏览次数:29  
标签:Shell command2 间隔 命令 shell && 执行 sub

1、&

command1 & command2 & command3     # 三个命令同时执行

用 & 连接的多个符号将同时执行,不管命令是否执行成功

单个的与符号通常可以发现在一个 bash 命令的行尾:

sleep 2 & echo mi

 

其作用是令该命令转到后台执行。对于这样的命令,系统会创建一个 sub-shell 来运行这个命令。同时,在执行改行命令的 shell 环境中,这个命令会立刻返回 0 并且继续下面的 shell 命令的执行。除此之外,在执行这个命令之后,terminal 上会输出创建的 sub-shell 的线程 ID(PID)。

[1] 77923
hh

注意按照这种方法分支出去的 sub-shell 的 stdout 会仍然关联到其 parent-shell,也就是说你在当前的 terminal 中仍然可以发现这个后台进程的 stdout 输出。

通过&分支出去的 sub-shell 的 PID 被存储在一个特殊的变量$!中,

$ echo $!
77923

同时,你也可以通过 jobs 命令来检查 sub-shell 的信息

对于 sub-shell,你可以通过fg命令将其拉回当前的 terminal。

如果有多个命令需要放到后台运行,可以采用如下方式:

command1 & command2 & command3 &

在这个例子中,三个脚本会同时开始运行,且拥有各自独立的 sub-shell 环境。在 shell 脚本中,这个方法常常被用来利用计算机的多核性能来加速执行。

如果你想创建个完全和当前的 shell 独立的后台进程(而不是想上面提到的用&创建的,和当前 shell 的 stdout 关联的方法),可以使用 nohup 命令。

;

command1; command2; command3 # 无论前面命令执行成功没有,后面的命令继续执行

 

&&

command1 && command2    #只有前面命令执行成功,后面命令才继续执行

&& 左边的命令(命令 1)返回真(即返回 0,成功被执行)后,&& 右边的命令(命令 2)才能够被执行;换句话说,“如果这个命令执行成功 && 那么执行这个命令”

|

管道符号,是 unix 一个很强大的功能,符号为一条竖线:"|"。

command 1 | command 2

他的功能是把第一个命令 command 1 执行的结果作为 command2 的输入传给 command 2

||

command1 || command2

|| 则与 && 相反。如果||左边的命令(command1)未执行成功,那么就执行||右边的命令(command2);或者换句话说,“如果这个命令执行失败了 || 那么就执行这个命令”。

  最后编辑于 :2021.12.28 11:02:45

作者:前端小白的摸爬滚打
链接:https://www.jianshu.com/p/410cd35e642f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:Shell,command2,间隔,命令,shell,&&,执行,sub
From: https://www.cnblogs.com/yuanqiangfei/p/17712938.html

相关文章

  • Shell环境变量全攻略:让你的编程工作更加高效
    在Linux和Unix系统中,环境变量是存储系统配置信息的重要机制。它们被设计为影响所有进程和用户,而不仅仅是单个用户。环境变量可以被视为一种在shell会话中共享的全局变量。什么是环境变量?环境变量是一种在操作系统中用来存储系统配置信息的机制。这些信息包括文件路径、系统设置、用......
  • shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......
  • shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......
  • shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......
  • Linux与Shell编程期末复习
    Linux中各类特殊变量的含义$#是传给脚本的参数个数$0是脚本本身的名字$1是传递给该shell脚本的第一个参数$2是传递给该shell脚本的第二个参数$@是传给脚本的所有参数的列表$*是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个$$是脚本运行的当前......
  • Linux Shell脚本实战:让你的工作变得更轻松、更高效
    作为一名Linux工程师,会写好的脚本不仅能提高工作效率,还能有更多的时间做自己的事。最近在网上冲浪的时候,也注意收集一些大佬写过的脚本,汇总整理一下,欢迎收藏,与君共勉!查看有多少远程的IP在连接本机#!/bin/bash#!/bin/bash#查看有多少远程的IP在连接本机(不管是通过ssh......
  • shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......
  • shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......
  • shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......
  • 基于间隔密度的概念漂移检测算法mdm-DDM
    概念漂移​ 概念漂移是数据流挖掘领域中一个重要的研究点。传统的机器学习算法在操作时通常假设数据是静态的,其数据分布不会随着时间发生变化。然而对于真实的数据流来说,由于数据流天生的时间性,到达的数据的分布可能会随着时间的推移不断改变。这使得传统的批处理模型不适合对数......