0
这种方法找不到我指定的文件我想要。makefile shell grep找不到我试图指定的文件
SHELL = /bin/bash
PKG_NAME = test
PKG_VERSION := $(shell grep -i '^version' $(PKG_NAME)/DESCRIPTION | cut -d ':' -f2 | cut -d ' ' -f2)
在shell本身中,grep -i '^version' test/DESCRIPTION | cut -d ':' -f2 | cut -d ' ' -f2
确实成功返回了该版本,例如, 0.4-7
但是,通过Makefile返回运行:
grep: test: Is a directory
grep: /DESCRIPTION: No such file or directory
test
是一个目录,这是真的,但test/DESCRIPTION
确实存在,所以我猜$(PKG_NAME)/DESCRIPTION
是不汇编文件名的正确方法。
对此提出建议?谢谢。
我明白了你对2个独立论点的观点。听起来好像它并不是把这两块粘在一起。但是,没有多余的空格,并且更改为“$(PKG_NAME)/ DESCRIPTION”会导致相同的错误。 –
它不可能给出同样的错误。它可能说'grep:'测试:是一个目录和'grep:/说明':没有这样的文件或目录'或类似的东西?你确定你正在运行正确的makefile吗?如果将SHELL设置为'bash -x',你会得到什么? –
使用'$(PKG_NAME)/ DESCRIPTION'给出:'grep:test/DESCRIPTION:没有这样的文件或目录,并且在测试和/之间似乎有一个空格。使用$(PKG_NAME)/ DESCRIPTION给出:'grep:test:是一个目录 grep:/描述:在单独的行上没有这样的文件或目录;将shell设置为'bash -x'似乎没有改变任何东西。肯定似乎在那里看到一个空间,但我确定没有看到它,或理解它。 –