执行 bash 命令 与 shell 脚本
我们都知道当运行普通命令(非内建命令)或者Shell脚本的时候,当前终端命令行 Bash ,都会fork 一个子进程 去 分析参数后execve 普通命令 或者 执行脚本的时候 ,发现当前文件是个文本文件,那么就会替换 SheBang 指定的解析器,并把文本文件交给SheBang 去处理。所以Shell 脚本 才得以执行。
上面的俩种是我们比较常见的形式,它们都并不是Bash 亲自执行 。
如果我们想Shell 去亲自执行脚本,而不是fork 子Bash 去执行脚本的话。我们可以使用 . 或者 source 命令。让 Bash 去亲自执行这些 脚本。
#!/bin/sh
Dir=$(pwd)/log
export GLOG_log_dir=${Dir}
export GLOG_minloglevel=1
export GLOG_stderrthreshold=1
如上如果我有个导入环境变量的需求,直接 使用 source xxx.sh 即可。环境变量就会被导入到当前 bash 中。