如何在tcsh Shell中检查变量是否为空?

如果我必须检查,如果一个变量为空或不是在bash shell我可以检查以下脚本:
if [ -z "$1" ] 
then
    echo "variable is empty"
else 
    echo "variable contains $1"
fi

但是我需要将其转换成tcsh shell.

关于使用tcsh / csh的标准警告应用,但这里是翻译:
if ( "$1" == "" ) then      # parentheses not strictly needed in this simple case
    echo "variable is empty"
else 
    echo "variable contains $1"
endif

但是,请注意,如果要在上述中使用任意变量名称而不是$1,则如果该变量尚未定义,那么该语句将会中断(而始终定义$1,即使未设置).

为了规划一个变量(例如$var)可能不被定义的情况,它变得棘手:

if (! $?var) then       
  echo "variable is undefined"
else
  if ("$var" == "")  then
      echo "variable is empty"
  else 
      echo "variable contains $var"
  endif
endif

需要嵌套的ifs来避免打破脚本,因为tcsh显然不会短路(否则,如果分支的条件将被评估,即使输入了if分支;同样,&和&|和| |表达式的两面似乎总是被评估 – 这至少应用于使用未定义的变量).

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...