我遇到过用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
,它的含义是什么?
最佳答案
$?VAR
如果 $VAR
,则扩展为 1(真)被设置(设置为任何东西,甚至是空字符串),如果不是,则设置为 0(假)。
这记录在 csh manual 中;点击链接并搜索 $?
,或输入 man csh
或 man tcsh
.
哦,csh 没有宏。
关于shell - $?VAR 在 csh 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16975968/