-
目的
使用 linux命令expr在Makefile、Android.mk、shell script 中执行数学表达式。 -
实例
例1:Android.mk中如下语句,用来判断Android版本号
ANDROID_MAJOR_VER := $(word 1, $(subst ., , $(PLATFORM_VERSION)))
ifeq (1, $(strip $(shell expr $(ANDROID_MAJOR_VER) \>= 8)))
LOCAL_PROPRIETARY_MODULE := true
endif
例2:
(来自https://stackoverflow.com/questions/1926063/how-do-i-perform-arithmetic-in-a-makefile)
JPI=4
JPJ=2
#With Double-dollar
JPIJ_1 = $(shell echo $$(( $(JPI) + $(JPJ) )))
#With 'expr'
JPIJ_2 = $(shell expr $(JPI) + $(JPJ) )
$(info Sum with Double-$$: $(JPIJ_1))
$(info Sum with 'expr': $(JPIJ_2))
- 参考
expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串
https://www.runoob.com/linux/linux-comm-expr.html
https://www.cnblogs.com/f-ck-need-u/p/7231832.html
https://blog.csdn.net/tianmohust/article/details/7628694