Bash 更新变量的值
我正在做一个Makefile,我在更新变量的值时遇到了一个问题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
#!/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