深入理解Shell可移植性、启动终止与安全脚本编写
1. Shell会话与启动文件调用情况
不同类型的Shell会话对启动文件的调用情况有所不同。
-交互式会话:仅调用单个文件。例如,启动一个交互式的bash会话:
$ bash Start an interactive session DEBUG: This is /home/bones/.bashrc $ exit Terminate the session exit- 非交互式会话:通常不调用任何文件。如执行
$ echo pwd | bash,输出为/home/bones。但当BASH_ENV值指向一个启动文件时会调用,例如$ echo pwd | BASH_ENV=$HOME/.bashenv bash,会显示DEBUG: This is /home/bones/.bashenv以及输出/home/bones。
2. Z-Shell的启动与终止
Z-Shell(zsh)具有复杂且灵活的定制过程,其启动和终止行为如下:
-启动过程:
- 无论何种类型的Z-Shell启动,都会先尝试读取两个初始化文件: