bash - Makefile 任务因错误而停止,我可以继续运行它吗?

标签 bash makefile

在我的 makefile 中有一个同步配置文件的任务

redis:
    mkdir -p /var/lib/redis
    mkdir -p /var/log/redis
    useradd --system --home-dir /var/lib/redis redis
    chown redis.redis /var/lib/redis
    chown redis.redis /var/log/redis
    cp ./scripts/redis-server.d.conf /etc/init/redis-server.conf
    cp ./scripts/redis.conf /etc/redis.conf
    restart redis

但是当我第二次运行时:

useradd --system --home-dir /var/lib/redis redis
useradd: user 'redis' already exists

如您所见,它在 useradd 处停止,我可以继续运行它吗?

最佳答案

问题是 useradd 命令返回错误代码。

您可以按照说明在命令前添加破折号 here (实际上,我发现这是一个重复的问题):

-useradd --system --home-dir /var/lib/redis redis

或者,使该命令始终返回成功代码的解决方法是将其与 true 组合,如下所示:

useradd --system --home-dir /var/lib/redis redis || true

关于bash - Makefile 任务因错误而停止,我可以继续运行它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9512988/

相关文章:

regex - 在 bash 中解析类似 .csv 的文件

python - python -m 模块的命令行自动完成

makefile - 如何停止 CMake 附加 C 编译器标志

c++ - 在 RHEL 7 上编译 mysqlclient 并在 RHEL 6 上运行(Linux 上为 g++)

objective-c - 生成文件问题。 [Ubunt、GNUstep、ObjC、]

c++ - 用于为并行 C++ 作业生成输入的 BASH 脚本

linux - 如何在 hdfs 命令中传递 awk 变量

linux - 如何通过bash检查最新的内核版本

c++ - 生成文件语法 : Static library lib$(library). a($objects)

makefile - Makefile 中的多个 Shell 命令