Bash 如何提取make';谁的版本号?
如何从bash shell获取Bash 如何提取make';谁的版本号?,bash,awk,makefile,version,Bash,Awk,Makefile,Version,如何从bash shell获取make的数字版本号? 我试过,除其他外: MAKE_VERSION=$(MAKE--VERSION 2>&1 | awk'/MAKE/{print$2}') 但我得到的是“Make”而不是它的版本 这是我从make--version获得的输出: GNU Make 4.1 Built for x86_64-unknown-cygwin Copyright (C) 1988-2014 Free Software Foundation, Inc. License GPL
make
的数字版本号?
我试过,除其他外:
MAKE_VERSION=$(MAKE--VERSION 2>&1 | awk'/MAKE/{print$2}')
但我得到的是“Make”而不是它的版本
这是我从make--version
获得的输出:
GNU Make 4.1
Built for x86_64-unknown-cygwin
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
GNU Make 4.1
为x86_64-unknown-cygwin构建
版权所有(C)1988年至2014年自由软件基金会。
许可证GPLv3+:GNU GPL版本3或更高版本
这是自由软件:您可以自由更改和重新发布它。
在法律允许的范围内,不存在任何担保。
在本例中,我希望获得字符串“4.1
”使用并:
使用和:
您可以使用:
make_version=$(make --version 2>&1 | awk '/Make/ {print $NF}')
mver=$(make -f <(echo '$(info $(MAKE_VERSION)) all:;') -q)
因为最后一个字段提供了版本号。您可以使用:
make_version=$(make --version 2>&1 | awk '/Make/ {print $NF}')
mver=$(make -f <(echo '$(info $(MAKE_VERSION)) all:;') -q)
由于最后一个字段为我们提供了版本号。对于
make
版本的4.0+,您也可以使用此字段:
mver=$(make --eval '$(info $(MAKE_VERSION))' --eval 'all:;' -q)
对于
make
版本3.81和3.82(假设bash
),您可以使用:
make_version=$(make --version 2>&1 | awk '/Make/ {print $NF}')
mver=$(make -f <(echo '$(info $(MAKE_VERSION)) all:;') -q)
对于
make
4.0+版,您也可以使用此选项:
mver=$(make --eval '$(info $(MAKE_VERSION))' --eval 'all:;' -q)
对于
make
版本3.81和3.82(假设bash
),您可以使用:
make_version=$(make --version 2>&1 | awk '/Make/ {print $NF}')
mver=$(make -f <(echo '$(info $(MAKE_VERSION)) all:;') -q)
哈哈,学习基本的awk。或者真正理解你正在执行的命令是什么。你知道MAKE已经在内部定义了
MAKE\u VERSION
吗?哈哈,学习基本awk。或者真正理解您正在执行的命令的作用。您知道MAKE已经在内部定义了MAKE\u VERSION
?