文件说
Macro: AS_IF (test1, [run-if-true1], ..., [run-if-false])
运行shell代码test1。如果test1以零状态退出,则运行shell代码run-if-true1,否则检查进一步的测试。如果没有任何测试以零状态退出,请运行shell代码run-if-false,并简化运行条件(如果run-if-true1或run-if-false为空)。
configure.ac文件包含
AS_IF([test "$have_hdf5" != "no"], [AC_DEFINE([HAVE_HDF5], [], [we have HDF5 library + headers])])
但是当我输入运行shell代码test1(即test)时"$have_hdf5" != "no"
,什么也没出现。无论我输入test $have_hdf5
了什么(例如),我都一无所获。但是当我./configure
。那么AS_IF
和test1
Shell代码如何工作?它正在测试一些环境变量吗?感谢您的解释!
test
除非您提供错误的表达式,否则该实用程序没有可见的输出。
test
如果表达式为true,并且退出状态为非零,则表示表达式为false(或无效),将以0状态退出。
AS_IF
测试作为第一个参数提供的表达式的退出状态。
如果它为0(真),则执行相关的代码块。如果不是,它将移至下一个测试表达式并以相同的行为执行。
直到宏用尽测试为止。一旦发现所有测试为假,如果提供了最后一个参数,它将执行最后一个参数的内容。
编辑
自然地,如果您在当前shell中没有定义“ have_hdf5”,那么当您test
单独执行表达式时就不会为true ,但是如果在configure脚本中为true,它将按照其意图进行操作。无论如何,除非使用输出语句,否则不会发生输出。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句