我遇到了用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/