父Shell与子Shell
父Shell与子Shell
Login Shell
登录主机后,在执行Bash Script之前,其实我们已经处于一个BashShell中。
这个Shell叫login Shell,是将来我们执行任何Script的上层环境。又叫父SHell
其实每个帐号都可以自定义loginShell。以Linux来说,帐号的login Shell定义在/etc/passwd这个文件中。
/etc/passwd的每一行代表一个帐号,共有7个字段,之间用:隔开。
帐号:x:UID 使用者代码:GID 群组代码:用户信息:主目录:login shell路径
第二栏x为密码栏,基于系统安全考虑,编码后的密码已经被放入/etc/passwd文件中。
login Shell定义在第7个字段,如果这个字段的Shell程序不存在、不合法,或执行失败,则无法登录主机。
父Shell、子Shell
当在执行一个Shell Script时,父Shell会根据Script程序的第一行#!之后指定的Shell程序开启一个子Shell环境,然后在子Shell中执行此Shell Script。一旦子Shell中的Script执行完毕,此子Shell随即结束,回到父Shell中,不会影响父Shell原本的环境。
子Shell环境拥有与父Shell相同的环境变量、标准输入、输出、错误等。
例如:
test.sh文件内容
#!/bin/bash
cd /var/www/html
命令行:chmod +x /test.sh
命令行:./test.sh
执行完脚本后还原到父Shell,并且父Shell并没有进入/var/www/html目录。
注:这是因为当执行Shell文件时,父Shell会创建子Shell,各自独立。
如果需要使用父Shell来执行此脚本,可以使用:
命令行:. ./test.sh
注意.与./之间有一个空格符
子Shell继续开启子Shell
与父Shell启动子Shell方式一样,继续调用下去,即子Shell开启子Shell。
通过$SHLVL变量,可以知道当前所在Shell的层次
父Shell与子Shell相关推荐
- Linux中shell运行方式,linux脚本中父shell与子shell 执行的几种方式
本文主要介绍以下几个命令的区别: shell subshell source $ (commond) `commond` Linux执行Scripts有两种方式,主要区别在于是否建立subshell ...
- Linux中父shell 与 子shell :subshell 和 child shell
子shell的概念 中文翻译过来的"子shell"叫法,实际上包括了"subshell"和"child shell". subshell是指 ...
- [shell问答录]:命令、进程、子shell...
2019独角兽企业重金招聘Python工程师标准>>> 前些天在CU上讨论一个统计正在执行的脚本数量的问题过程中,发现自己对于shell如何执行命令方面了解还是甚少,惭愧惭愧...期 ...
- Linux编程 9 (shell类型,shell父子关系,子shell用法)
一. shell类型 1.1 交互式 bin/ shell程序 当用户登录到某个虚拟控制台终端或是在GUI中启动终端仿真器时,默认的shell程序就会开始运行.系统启动什么样的shell程序取决于你 ...
- c语言 子进程,子Shell和子进程
Shell 中有很多方法产生子进程,比如以新进程的方式运行 Shell 脚本,使用组命令.管道.命令替换等,但是这些子进程是有区别的. 子进程的概念是由父进程的概念引申而来的.在 Linux 系统中, ...
- linux shell变量作用域,Shell变量的作用域:Shell全局变量、环境变量和局部变量
Shell变量的作用域(Scope),就是Shell变量的有效范围(可以使用的范围). 在不同的作用域中,同名的变量不会相互干涉,就好像A班有个叫小明的同学,B班也有个叫小明的同学,虽然他们都叫小明( ...
- shell编程-初始shell及变量
shell编程 初始shell 程序 语言 编程 ---------------------------------- 语言 自然语言:汉语.英语 计算机语言:c语言.c++.(java php py ...
- (2)shell编程学习 Shell中的变量(预设变量表)及变量定义与特殊变量 (脚本小子的进阶之路)
这里尽量以较简略的篇幅讲解,如果之前有Python PHP语言基础的话,学习应该非常快.当然文章篇幅有限,只能讲一些主要的地方,一些偏的知识可能不讲. 目录 变量 局部变量 环境变量 自定义环境变量 ...
- Shell编程--初识shell
文章目录 shell 定义 父shell和子shell 配置shell 创建一个shell脚本 执行一个shell脚本 编程语言的分类: 编译型语言:运行编译型语言是相对于解释型语言存在的,编译型语言 ...
最新文章
- 外卖平台涉嫌大数据杀熟,处理不能“自说自话”
- [20190113]四校联考
- vue解决启动报错cjs loader.js Error: Cannot find module ‘../config‘问题
- Python 让所有奇数都在偶数前面,而且奇数升序排列,偶数降序排序
- usb接口驱动_乾坤合一~Linux设备驱动之USB主机和设备驱动
- python3函数调用时间_Python3 time clock()方法
- python获取终端输出流_Linux下用Python获取命令行输出的几个方案
- python安装json模块_python 标准模块之json 模块
- Is It A Tree?(hdu1325)
- static关键字(pass)
- ios android 宏,iOS常用宏(不断更新)
- 概率论与数理统计思维导图_“我更强调统计学的思维”——专访北京师范大学未来教育学院李勇教授...
- 留言列表模板HTML代码
- 玩转 ESP32 + Arduino (十九) SIM800L上传数据到OneNet(新版Mqtts)
- 如何下载衡水市卫星地图高清版大图
- 【资料】分享北京某培训机构全部学习课程加个人的一些学习上的建议
- linux gz是什么文件,gz是什么
- SQLyog启动:错误号码2003问题的解决
- Springboot引入hibernate配置自动建表并进行增删改查
- c语言20s计数器,供应电子计时器、JC20S、JY20S、计数控制器、计米器