Bash 我不明白

Bash 我不明白,bash,Bash,我刚刚在Linux脚本中找到了下一个cmd: (mkdir -p toolchain && cd toolchain && ln -s ${NATIVE_TOOLCHAIN_HOME}/build/* .) 我从来没有用过这样的括号,我相信它创建了一个名为toolchain的文件夹,它放在这个文件夹中。。。是否将${NATIVE\u TOOLCHAIN\u HOME}/build/的内容复制到TOOLCHAIN中?括号在bash中创建子shell 因此,您正在创

我刚刚在Linux脚本中找到了下一个cmd:

(mkdir -p toolchain && cd toolchain && ln -s ${NATIVE_TOOLCHAIN_HOME}/build/* .)

我从来没有用过这样的括号,我相信它创建了一个名为toolchain的文件夹,它放在这个文件夹中。。。是否将
${NATIVE\u TOOLCHAIN\u HOME}/build/
的内容复制到TOOLCHAIN中?

括号在bash中创建子shell

因此,您正在创建一个子shell,每当前一个命令成功时,它将执行一行中的3个命令:

  • 创建一个文件夹
  • 在该文件夹中输入
  • 执行
    ln
  • 当它完成时,您不在该文件夹中,因为所有这些命令都是在子shell中执行的

    您可以在
    man bash
    中看到更多内容:

    影响shell环境的变量指定和内置命令在命令完成后不会保持有效。返回状态是列表的退出状态


    ln
    不复制
    man-ln
    ln--help
    。括号中创建了一个子shell,因此对
    cd
    的调用不会更改括号之外的后续命令的工作目录将完整命令粘贴到其中: