【发布时间】:2020-06-27 11:08:18
【问题描述】:
我想在 Makefile 中使用bash 的算术扩展进行二进制操作(Debian 上的 GNU make + bash)。 expr 未涵盖这些内容。我在 Makefile 中需要这个:
$ x=$(( 255 & 2#11110000)); echo $x
240
不起作用的事情:
$ cat Makefile
all: a b
a: # $ interpreted by make
x=$(( 255 & 2#11110000)); echo $$x
b: # escaped $
x=$$(( 255 & 2#11110000)); echo $$x
(a) 显然不起作用,(b) 也不起作用:
$ make b
x=$(( 255 & 2#11110000)); echo $x
/bin/sh: 1: arithmetic expression: expecting EOF: " 255 & 2#11110000"
什么是可能的方法?大量的引用、反引号和转义也没有产生任何结果。
【问题讨论】:
-
谢谢卡米尔,是的,这是密切相关的,但太笼统了,所以我没有注意到它。