在执行linux工具时,我有一个makefile规则.我需要判断刀具命令的退出状态,如果该命令失败,make必须中止.

我试着用$?,$$?\$判断?在makefile中.但是当makefile运行时,它们给了我语法错误.

正确的方法是什么?

以下是Makefile中的相关规则

    mycommand \
    if [ $$? -ne 0 ]; \
    then \
        echo "mycommand failed"; \
        false; \
    fi

推荐答案

在makefile中-:

mycommand || (echo "mycommand failed $$?"; exit 1)

makefile操作中的每一行都会调用一个新的shell——必须在命令失败的操作行中判断错误.

如果mycommand失败,则逻辑分支到echo语句,然后退出.

Linux相关问答推荐

C++ kill()使Linux崩溃到登录屏幕

空字符串和空文件的区别

如何将数据从Linux内核中的块驱动程序持久存储到存储中?

Azure Linux B1s VM-Jenkins Sever已安装,但主页未打开

为什么waitpid(2)可以指定非子进程?

如何在具有多种可能性的linux shell中获取最大值和最小值?

命令应在终端关闭后继续运行

如何在Linux中将文件的特定行号中的数字乘以2(双)?

如何使用 Bash 将随机数据块写入文件

为什么 8 位字符串文字可以包含多字节字符,而 char 向量不能?

我可以阅读 Linux 内核的哪些部分以获得乐趣?

如何在makefile中包含静态库

如何在 Linux 上捕获原始 HID 输入?

通过 Linux FrameBuffer 将像素绘制到屏幕上

如何将 bash 别名定义为多个命令的序列?

在 linux 上查看文件大小

是否有git sed或类似功能?

Linux如何确定下一个PID?

如何在我的终端中编辑文本文件

如何将 ISO8859-15 转换为 UTF8?