Bash 更新变量的值

Bash 更新变量的值,bash,shell,makefile,Bash,Shell,Makefile,我正在做一个Makefile,我在更新变量的值时遇到了一个问题 #!/bin/bash # Makefile IMPORT_PATH := github.com/... CHECK := 0 .PHONY: install install: $Q printf "\\nLet's install..." $Q if grep -q \!string "$(DIR)" ; then CHECK = $($CHECK + 1) ; fi

我正在做一个Makefile,我在更新变量的值时遇到了一个问题

#!/bin/bash 
# Makefile 

IMPORT_PATH := github.com/... 
CHECK := 0

.PHONY: install 
install: 
        $Q printf "\\nLet's install..."
        $Q if grep -q \!string "$(DIR)" ; then CHECK = $($CHECK + 1) ; fi
        $Q printf "done!"

如果条件良好,我想将CHECK的值从0更新为1,但我不知道该怎么做,有什么建议吗?

困难在于使用shell命令修改Makefile变量

IMPORT_PATH := github.com/... 
CHECK := 0

.PHONY: install 
install: 
    $Q printf "\\nLet's install..."
    $(eval CHECK := $(shell if grep -q \!string "$(DIR)" ; then echo $$(( $(CHECK) +1)) ; else echo $(CHECK) fi) )
    $Q printf "done!"
例如,递增检查Makefile变量

    $(eval CHECK := $(shell echo $$(( $(CHECK) + 1 )) ) )

CHECK=$((CHECK+1))
((CHECK+=1))
周围没有空格
=
它不起作用。我不知道这是否是我的gmake版本,但我在语法方面有很多问题。对于您的解决方案:
语法错误:“(“意外(预期”)”
因为它在生成文件中,所以您可能必须使用双$:
CHECK=$$((CHECK+1))
Super!它起作用了!非常感谢你@nahuel fouilleul