我正在尝试将命令的标准退出状态保存在我的makefile变量中,但我不知道该如何做。
我已经尝试了这个方法:
我已经尝试了这个方法:
pruebas:
@A= $(ls)
...但是它不起作用。
$(shell command)
语法在Makefile中从shell执行命令。
例如,如果你想要在bash中获取ls
命令的退出状态,你可以输入:ls --qwfpgjl > /dev/null 2>&1 ; echo $?
ls --qwfpgjl > /dev/null 2>&1 ; echo $?
2
因为这是当有未知参数时ls
返回的错误(请参阅ls
man page)。
现在如何将其包含在您的Makefile中?只需添加以下行:
A=$(shell ls > /dev/null 2>&1 ; echo $$?)
$$?
中的额外$
,它告诉make
这不是Makefile中的一个变量。#SHELL := /bin/bash
A=$(shell ls > /dev/null 2>&1 ; echo $$? )
test:
@echo $A
.PHONY: test
注意:
make
默认选择 /bin/sh
作为 shell,但你可以通过设置来覆盖这个选择。
SHELL := /bin/bash