我正在研究这个内容preinst在从 Debian 存档 (.deb) 文件中解压该包之前脚本执行的文件。
该脚本有以下代码:
#!/bin/bash
set -e
# Automatically added by dh_installinit
if [ "$1" = install ]; then
if [ -d /usr/share/MyApplicationName ]; then
echo "MyApplicationName is just installed"
return 1
fi
rm -Rf $HOME/.config/nautilus-actions/nautilus-actions.conf
rm -Rf $HOME/.local/share/file-manager/actions/*
fi
# End automatically added section
我的第一个查询是关于该行的:
set -e
我认为脚本的其余部分非常简单:它检查 Debian/Ubuntu 包管理器是否正在执行安装操作。如果是,它会检查我的应用程序是否刚刚安装在系统上。如果有,脚本会打印消息“MyApplicationName 刚刚安装”并结束(return 1
意味着以“错误”结束,不是吗?)。
如果用户要求 Debian/Ubuntu 软件包系统安装我的软件包,该脚本还会删除两个目录。
这是对的还是我错过了什么?
From help set
:
-e Exit immediately if a command exits with a non-zero status.
但有些人(bash FAQ 和 irc freenode #bash FAQ 作者)认为这是不好的做法。推荐使用:
trap 'do_something' ERR
to run do_something
发生错误时起作用。
See http://mywiki.wooledge.org/BashFAQ/105
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)