#!/bin/csh
set i=0
if ($i == 1 && { -e $HOME_EXIST } )then
echo "Hi"
else
echo "Hello"
endif
如果第一个条件返回false,为什么在csh中的逻辑AND操作中检查两个条件?
我收到以下错误:
HOME_EXIST:未定义的变量。
答案 0 :(得分:1)
你的问题是即使&&是懒惰的,csh会在开始评估表达式Reference之前尝试替换$ HOME_EXIST。 您可以通过使用嵌套ifs解决此问题。
#!/bin/csh
set i=0
if ($i == 1)then
if(-e $HOME_EXIST)then
echo "Hi"
endif
else
echo "Hello"
endif
答案 1 :(得分:1)
使用$?
检查是否定义了var:
if ($?HOME_EXIST) then
(do whatever you want)
endif