我遇到过用 csh 编写的这段代码:
if ( ! $?LM_LICENSE_FILE ) then
setenv LM_LICENSE_FILE $_LmLicense
else
switch("$LM_LICENSE_FILE")
case *${_LmLicense}*:
breaksw
default:
setenv LM_LICENSE_FILE "${_LmLicense}:$LM_LICENSE_FILE"
endsw
endif
请注意这一行:
if ( ! $?LM_LICENSE_FILE ) then
$?
在做什么$?LM_LICENSE_FILE
?
LM_LICENSE_FILE
是一个shell变量(或者更准确地说是宏),我知道它$LM_LICENSE_FILE
是用来检索它的值的,但是后面跟一个问号$
,也就是说$?LM_LICENSE_FILE
,它的含义是什么?