【发布时间】:2014-12-04 12:57:34
【问题描述】:
我需要确定软件的主要版本,为此主要是执行
命令--版本 |头| awk -F“。” '{打印 $1}'
现在,我需要将此输出分配给 AC_DEFINE 变量。
我试过了;
majorvar=$(command --version | head | awk -F "." '{print $1}')
AC_DEFINE_UNQUOTED([myVar],["$majorvar"],[description])
这里的“命令”出现在生成的 config.h 文件中
和
AC_DEFINE([myVar],0,[descr])
AC_SUBST([myVar],[$(command --version | head | awk -F "." '{print $1}')])
define (0) 设置的值出现在结果中的位置。
是否可以得到我想要的结果,即
#define myVar 5
或者我是否以错误的方式处理这个问题,如果是这样,我应该如何处理?
BR/帕特里克
【问题讨论】:
-
为什么是
head命令?你可以使用这个:command --version | awk -F "." 'NR==1{print $1;exit}' -
@hek2mgl 如果您要立即退出,则不需要
NR==1。 -
使用反引号而不是
$()会改变什么吗? -
@EtanReisner 你确定 awk 不会继续遍历整个文件并执行
NR==1检查吗? (当然会产生false) -
@hek2mgl 我不明白这个问题。您在该块中使用
exit告诉 awk 停止处理文件。这意味着您在第一行之后停止。 (NR==1在这一点上是正确的,但为什么要测试它?)
标签: bash automake autoreconf