我遇到过用 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
什么是$?
do in $?LM_LICENSE_FILE
?
LM_LICENSE_FILE
是一个 shell 变量(或者更准确地说是宏),我知道$LM_LICENSE_FILE
用于检索其值,但后面跟着一个问号$
, 那是$?LM_LICENSE_FILE
,它的含义是什么?
$?VAR
扩展为 1(真)如果$VAR
已设置(任何内容,甚至是空字符串),如果没有设置,则为 0(假)。
这记录在csh 手册;点击链接并搜索$?
,或输入man csh
or man tcsh
.
哦,csh 没有宏。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)