bash 中的 ?= 是什么?

gau*_*rma 10 bash

Linux 中的 Bash 具有特殊字符。特殊字符之一是?=. 特殊字符 ?=是什么意思。无法理解这些类型的特殊字符。脚本是这样写的6LBR?=../..。

Kus*_*nda 17

这看起来像是来自某种 Makefile 而不是来自bash脚本。

bash没有?=运算符,但make有(作为POSIX 标准make的扩展)。如果变量尚未定义,它会为变量赋值。

参考(GNU make):https : //www.gnu.org/software/make/manual/make.html#index-_003f_003d

参考(BSD make):http : //man.openbsd.org/make#VARIABLE_ASSIGNMENTS

还有许多其他语言也有?=运算符,但bash不是其中之一。

  • Makefile 似乎确实很可能:https://github.com/cetic/6lbr/blob/56f8407964377406e1d0210b0928024a9b870f22/examples/6lbr/plugins/lwm2m-client/Makefile (2认同)