【发布时间】:2013-11-06 11:33:38
【问题描述】:
我正在研究这个 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 is just installed” 并结束(return 1 表示以“错误”结束,不是吗?)。
如果用户要求 Debian/Ubuntu 包系统安装我的包,脚本也会删除两个目录。
这是对的还是我错过了什么?
【问题讨论】:
-
在 google 中找不到此内容的原因: -e 在您的查询中被解释为否定。尝试以下查询:bash set "-e"
-
@twalberg 当我问自己同样的问题时,我正在查看
man set -
如果您正在寻找如何关闭它,请将破折号换成加号前缀:
set +e -
@twalberg 但是询问真人比仅仅向机器人发出请求要有趣得多;-)。