在makefile中执行检查

时间:2014-07-14 21:10:24

标签: makefile install

我有一个带有install目标的makefile,它会创建一堆目录并安装一些文件。我还想检查一个组的存在,如果它不存在,创建它。为此,我需要确保用户以root用户身份运行。有没有在makefile中执行此操作的首选方法?

install: afile
    # Check user is root, otherwise print error and exit.
    # Check if "auser" exists, otherwise create it.
    # Check if "agroup" exists, otherwise create it.
    install -d -o auser -g agroup -m 0755 /path/to/stuff
    install -o auser -g agroup -m 0644 afile /path/to/stuff/afile
    service start aservice

1 个答案:

答案 0 :(得分:1)

我真的不知道这与make有什么关系,但我喜欢使用id命令来执行这些类型的检查:

[ `id -u` = 0 ] || { echo "Not running as root"; exit 1; }
id "auser" 2>/dev/null || { echo "No user 'auser'"; exit 1; }

检查组比较棘手;我实际上不确定会有这样做的程序。当然,您可以随时直接查看/etc/group

grep -q "^agroup:" /etc/groups || { echo "No group 'agroup'"; exit 1; }