如果我必须检查,如果一个变量为空或不是在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分支;同样,&和&|和| |表达式的两面似乎总是被评估 – 这至少应用于使用未定义的变量).
原文地址:https://www.jb51.cc/bash/386442.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。