脚本编程中的命令历史、循环与条件控制
1. 命令历史文件
Korn shell 的命令历史功能依赖于一个文件,该文件会记录你输入的命令。这个文件通常是主目录下的.sh_history,不过你可以通过设置环境变量HISTFILE来指定它的名称。当你运行 Korn shell 的编辑模式时,实际上是在对这个历史文件运行一个小型编辑器。
1.1 多登录会话的历史文件管理
如果你同时运行多个登录会话(例如在 X Windows 工作站上打开多个 xterm),为每个登录会话维护一个单独的历史文件可能会更有优势。你可以在.profile文件中添加以下行:
HISTFILE=~/.hist$$这会创建一个以.hist开头,以一个基本能保证唯一的数字结尾的历史文件。不过,这样做会产生很多零散的历史文件。清理这些不需要的历史文件有两种方法:
- 在注销时手动清理。
- 在个人的 crontab 文件中添加一个条目,在每天凌晨 2 点等合适的时间删除所有历史文件。示例代码如下:
0 2 * * * rm ~/.hist*需要注意的是,有些 UNIX 版本不支持个人 crontab 文件,你可以使用at命令结合一个能在结束时重新调度自身的脚本,或者请系统管理员在系统的 cron