Appearance
Shell
Shell 是一个命令行解释器,是外层应用程序和 Linux 内核的桥梁,它接收应用程序 / 用户 命令,然后调用操作系统内核。
Linux 提供的 Shell 解析器
cat /ect/shells
/bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin
脚本格式
指定解析器 #!/bin/bash
执行
方式一 bash /sh + 脚本绝对或相对路径(不用赋予脚本执行权限 x)
方式二 直接输入脚本绝对或相对路径(必须赋予脚本执行权限 x) ./foo.sh
这么写会当成命令执行,然后报错。 foo.sh
方式三 在脚本路径前加上 . 或 source . foo.sh source foo.sh
区别 方式一和方式二会在当前环境打开了一个子 Shell,然后解释执行,执行完后关闭子 Shell,回到 父 Shell。
source 和 . 不启动子 Shell,直接在当前 Shell 下解释执行,这也就是为什么修改完 /ect/profile 后,需要 source 一下的原因。
开启子 Shell 与不开启子 Shell 的区别在于:环境变量的继承关系,如在子 Shell 中设置的 当前变量,在父 Shell 中是不可见的。