我是靠谱客的博主 勤劳往事,最近开发中收集的这篇文章主要介绍Shell及 子Shell关系,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        Linux登陆主机后,在执行Script之前,其实我们已经处于一个shell中,即Login Shell ,它是将来要执行Script的父shell,如root账号默认为/bin/bash

       Linux下每个账号都可以自定义Login Shell,在/etc/passwd文件中,Login  Shell定义在第七个字段,如果这个字段不存在,不合法或执行失败,则无法登陆主机

       当在执行一个Shell  Script时,父Shell会根据Script程序的第一行的    #:    之后指定的shell程雪 来开启一个子shell坏境,然后再子shell中执行此Shell Script,一旦执行完毕,子Shell结束,回到父Shell,不会影响原文父Shell的环境。


执行脚本的三种方式:

1.Source    test.sh       或者  .      test.sh

在当前Shell环境下读取并执行Script中命令,该Script可以没有权限,没有建立子shell,script里所有新建坏境变量都保存在当前Shell里


2.sh  test.sh   或者Bash   test.sh

在父Shell下建立一个子shell,在子shell中执行脚本里面的语句,该子Shell继承父Shell的环境变量,但子shell新建的坏境变量不会带回父shell,除非使用export,可以无执行权限


3.    chmod  +x  test.sh  &&  ./test.sh

打开一个子Shell来执行test.sh脚本



1.登陆主机后,打开一个终端,输入echo  $SHLVL,输出2.

2.输入bash,进入一个子Shell,然后再输入echo   $SHLVL,输出3.

3.输入EXIT,然后再输入echo  $SHLVL ,输出2.

4.输入EXIT,退出终端。







最后

以上就是勤劳往事为你收集整理的Shell及 子Shell关系的全部内容,希望文章能够帮你解决Shell及 子Shell关系所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部