Bash 如何在Makefile中计算文件中的行数?
我有一个Makefile,其中有一个文本文件和一个特定的数字。我想比较该文本文件中的行数,看看它是否等于或大于该行数,但使用wc bash命令没有成功 我已经尝试在文本文件上使用wc,但是$(wc-lBash 如何在Makefile中计算文件中的行数?,bash,makefile,Bash,Makefile,我有一个Makefile,其中有一个文本文件和一个特定的数字。我想比较该文本文件中的行数,看看它是否等于或大于该行数,但使用wc bash命令没有成功 我已经尝试在文本文件上使用wc,但是$(wc-l
TEST=“$(wc-l
对这些变量中的任何一个执行@echo$(值测试)(通过TEST3进行测试)将导致空输出
我还尝试将文本文件中的行数放入另一个文本文件(例如,linecount.txt,其中一行表示“30”)。然后我尝试将文件内容存储到一个变量中,以便将其与数字进行比较,但这没有起作用,因为我无法在开始时定义变量
有什么建议吗?这是可能的,还是我必须单独编写脚本?如果可能,您希望在Makefile中执行此操作。首先,您应该指定需要GNU make的语法(您对
ifeq
的引用是唯一的线索)
回到您的实际问题,gmake本身没有wc
函数。您要做的是执行一个外部命令。您可以使用shell
函数执行此操作:
TEST:=$(shell wc -l < missing_test_line_count.txt)
TEST=$(shell wc-l
在BSD make中,通过实现了同样的效果=代码>-分配:
测试!=wc-l<缺少测试线\u count.txt
要将shell作为GNUMakefile中变量扩展的一部分运行,需要使用shell
函数:
TEST:=$(shell wc -l < missing_test_line_count.txt)
它将在每次展开$(TEST)
变量时运行该命令
请注意,此函数(以及一般函数)是GNUMake扩展。普通品牌不支持这样做。注意GNU品牌(4.2及以上)的较新版本支持=代码>也是。
TEST=$(shell wc -l < missing_test_line_count.txt)