shell - 如何检查 shell 指令的返回值

标签 shell makefile return-value gnu-make

在我的 Makefile 中,我需要测试当前目录是否是 SVN 存储库,如果不是,我想使用 Makefile 中的 $(error) 指令指示错误。

所以我打算使用 $(shell svn info .) 的返回值,但我不确定如何从 Makefile 中获取这个值。

注意:我不是试图在配方中获取返回值,而是在 Makefile 的中间。

现在我正在做这样的事情,这只是因为 stdout 在出错时是空白的:

SVN_INFO := $(shell svn info . 2> /dev/null)
ifeq ($(SVN_INFO),)
    $(error "Not an SVN repo...")
endif

我仍然想知道是否可以在 Makefile 中获取返回值。

最佳答案

如何使用$?回显最后一个命令的退出状态?

SVN_INFO := $(shell svn info . 2>/dev/null; echo $$?)
ifeq ($(SVN_INFO),1)
$(错误“不是 SVN 存储库...”)
万一

关于shell - 如何检查 shell 指令的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7394290/

相关文章:

git别名删除本地和远程

C++ 从源生成器生成文件 - 有这样的吗?

c++ - 输出 'external/name/x/lib/lib.so' 不是使用 bazel make 创建的

excel - 如何从 VBA 函数返回结果

html - 如何使用 Nokogori 同时解析 html 文件中标签的属性和值?

linux - 奇异并行查询

python - 如何以像素为单位计算 Windows CMD shell 的宽度?

c - Makefile 编译并执行c程序

java - 使用IF语句来控制return语句?

java - 空 `Optional` 类型的返回值应该是什么?