安装包脚本

为了能够检测前面所述的脚本是如何运行的,以及传参和环境变量等等的内容,我们使用下面的脚本来测试。请将下面的postinstall脚本保存在dockutil/scripts目录中:

#!/bin/bash

striptName=$(basename $0)
logger -i "[installDockutil] scripts ($striptName) start"

argc=0
logger -i " [installDockutil] arguments[$argc]: [$0]"
while [ "$1" != "" ]; do
	argc=$((argc+1))
	logger -i "  [installDockutil] arguments[$argc]: [$1]"
	shift
done

targetRoot="$3"
if [ "$targetRoot" = "/" ]; then
	echo "  [installDockutil] installed on / as target root."
fi

logger -i "  [installDockutil] Env: $(printenv)"
logger -i "[installDockutil] scripts ($striptName) complete."
exit 0

简要说明:

  • 3-4行:使用basename命令获得脚本的名称,并使用logger命令记录在system.log中

  • 6-12行:通过while循环来遍历所有除$0的传参,并记录在system.log中

  • 14-17行:我们添加了判断安装目标盘是不是“/” 的判断,这在实际应用中会经常用到

  • 19行:将环境变量记录在system.log中

使用logger -i命令来将日志记录在system.log是上面采用的策略,读者可以使用其它方式记录,比如重定向到一个文本文件等等。

现在将postinstall 脚本分别复制为preinstall, preflight, preupgrae,postflight, 和postupgrade,并与postinstall存放在同一个目录中。

Last updated