Linux中shell和子shell一点点理解

Posted 十一

tags:

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

Linux执行脚本有两种方式,主要区别在于是否建立子shell
 
1、像sh,bash,./命令是用来执行shell脚本的,在bash/sh命令下,脚本文件可以无"执行权限",即没有rwx中的x权限。而对于./命令,脚本文件必须要有执行权限。
      创建子shell,在当前bash环境下再新建一个子shell执行脚本中的命令子shell继承父shell的变量,但子shell不能使用父shell的变量,除非使用export声明为环境变量
      子Shell从父Shell继承得来的属性如下:
               当前工作目录
               环境变量
               标准输入、标准输出和标准错误输出
               所有已打开的文件标识符
       子Shell不能从父Shell继承的属性:
               除环境变量和.bashrc文件中定义变量之外的Shell变量
 
2、source和.执行文件不会生成子shell
     不创建子shell,在当前shell环境下读取并执行脚本中的命令,相当于顺序执行脚本里面的命令

以上是关于Linux中shell和子shell一点点理解的主要内容,如果未能解决你的问题,请参考以下文章

理解Linux中子shell的概念

Linux中的子shell是什么,怎么理解?

Linux中的子shell是什么,怎么理解?

Linux shell基础

SHELL脚本攻略(读书笔记)--1.11 命令替换和子shell的作用

Shell编程语法及应用