gpt4 book ai didi

shell - KornShell - 使用可能未设置的变量进行测试

转载 作者:行者123 更新时间:2023-12-04 23:33:23 29 4
gpt4 key购买 nike

我在 KornShell (ksh) 中有以下代码:

FAILURE=1
SUCCESS=0

isNumeric(){

if [ -n "$1" ]; then
case $1 in
*[!0-9]* | "") return $FAILURE;
* ) return $SUCCESS;
esac;
else
return $FAILURE;
fi;
}

#...
FILE_EXT=${FILE#*.}

if [ isNumeric ${FILE_EXT} ]; then
echo "Numbered file."
fi
#...

在某些情况下,文件名没有扩展名,这会导致 FILE_EXT变量为空,这会导致以下错误: ./script[37]: test: 0403-004 Specify a parameter with this command.
我应该如何调用此函数以免出现此错误?

最佳答案

在测试函数的退出代码时,您应该去掉方括号,否则,您将始终得到“true”。此外,您应该引用您的变量。您可以对空扩展进行额外测试,如下所示:

FILE_EXT=${FILE#*.}

if isNumeric "${FILE_EXT}" &&
[ "${FILE_EXT}" != "${FILE}" -a "${FILE_EXT}" != "" ]
then
echo "Numbered file."
fi

编辑:添加了测试以处理以“.”结尾的文件名。

关于shell - KornShell - 使用可能未设置的变量进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1891092/

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