POSIX能否从程序输出中设置变量?

时间:2016-11-29 12:21:29

标签: makefile posix

在GNU make中,可以执行<script> $("#IdOfTheInputField").geocomplete(); // Option 1: Call on element. $.fn.geocomplete("input"); // Option 2: Pass element as argument. </script>之类的操作,将X设置为该shell命令的输出。有没有办法用纯POSIX制作同样的东西?

2 个答案:

答案 0 :(得分:3)

POSIX还没办法。有一个proposal可能会在某个时候被接受,允许进行!=分配,类似于使用$(shell ...)。较新版本的GNU使这种语法already support与BSD一样。

X != command -v foo

答案 1 :(得分:0)

我对POSIX并不完全了解,因为GNU make无处不在,但您可以在sh中找到标准的反引号语法。

此外,:=构造是GNU特定的,因此您应该只使用变量赋值,默认情况下它是惰性的。如果你可以懒惰地使用它,考虑到这些工具的传统,它存在于sh中,以及make中程序输出的重要性,那么你可以使用反引号这是一个合理的假设。 / p>

X=`command -v foo`

最后,make调用始终允许在调用中定义宏:

$ make VAR=value VAR=value ... target...