Shell autoconf:我应该总是使用AS\u IF over IF和m4\u IF吗?
autoconf手册建议使用Shell autoconf:我应该总是使用AS\u IF over IF和m4\u IF吗?,shell,autoconf,m4,Shell,Autoconf,M4,autoconf手册建议使用作为IF而不是IF,但没有提到m4 IF。AS_IF是否也应优先于m4_IF 手册的这一部分说要像使用一样使用,以实现它的可移植性,但手册中说要使用它来扩展所需的宏 我是否应该总是像使用一样使用?答案似乎是肯定的,但我再次看到其他宏中使用了if和m4\u if。什么时候可以不使用AS_IF?AS_IF的另一个好处是,当它展开时,分支中的宏所需的任何宏都会在测试之前展开 请参阅。我对此感到困惑,因为我没有意识到if/AS_if和m4_if之间的根本区别。当用户运行脚本时
作为IF
而不是IF
,但没有提到m4 IF
。AS_IF
是否也应优先于m4_IF
手册的这一部分说要像使用一样使用,以实现它的可移植性,但手册中说要使用它来扩展所需的宏
我是否应该总是像使用一样使用?答案似乎是肯定的,但我再次看到其他宏中使用了if
和m4\u if
。什么时候可以不使用AS_IF
?AS_IF的另一个好处是,当它展开时,分支中的宏所需的任何宏都会在测试之前展开
请参阅。我对此感到困惑,因为我没有意识到if
/AS_if
和m4_if
之间的根本区别。当用户运行脚本时,正常的if
和AS_if
会评估它们的条件,即configure
。相反地,m4\u if
在宏扩展期间对其条件进行了求值,即autoeconf
if
/如同_if
影响脚本流一样<如果
影响脚本内容,则代码>m4_
这一点现在看来很明显,但我一开始并没有明白。希望这对其他人有所帮助。这并不是说什么时候使用if
和什么时候使用AS\u-if
。我认为大家的共识是总是使用AS\u-if
而不是if
,因为你可以更好地引用,等等。