安装包脚本
为了能够检测前面所述的脚本是如何运行的,以及传参和环境变量等等的内容,我们使用下面的脚本来测试。请将下面的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
Was this helpful?