gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 18:12:07 35 4
gpt4 key购买 nike

如果我必须检查 bash shell 中的变量是否为空,我可以使用以下脚本进行检查:

if [ -z "$1" ] 
then
echo "variable is empty"
else
echo "variable contains $1"
fi

但是我需要将它转换成tcsh shell。

最佳答案

有关使用 tcsh/csh 的标准警告适用(请勿将其用于脚本,因为其 inherent limitations ) ,但这是翻译:

if ( "$1" == "" ) then      # parentheses not strictly needed in this simple case
echo "variable is empty"
else
echo "variable contains $1"
endif

但请注意,如果您使用任意变量名称而不是上面的 $1,则如果该变量尚未定义,则语句将会中断 (而 $1 始终已定义,即使未设置)。

<小时/>

要规划可能 undefined variable (例如$var)的情况,这会变得很棘手:

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

需要嵌套的 if 以避免破坏脚本,因为 tcsh 显然不会短路(即使输入了 if 分支,else if 分支的条件也会被求值;类似地,&&|| 表达式的两边似乎总是评估 - 这至少适用于 undefined variable 的使用)。

关于csh - 如何在 tcsh Shell 中检查变量是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22640093/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com