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,除非使