gpt4 book ai didi

linux - KornShell 脚本中的 if 语句

转载 作者:太空狗 更新时间:2023-10-29 11:39:32 26 4
gpt4 key购买 nike

我有下面的 if 语句。当我在文件夹中同时拥有 csv 文件和 zip 文件时,它会给我语法错误。但是当我只有 csv 文件或只有 zip 文件或不存在文件时,它会起作用。

我不确定是什么导致了以下命令中的语法错误:

if [ -f ctf_error_report_??_????????????.csv -o -f ctf_error_report_??_????????????.???.zip ];
then
echo "Successful"
else
echo "Problem"
fi
exit 0

对此有什么见解吗?

最佳答案

这是一种危险的文件检查方式。如果您碰巧在该目录中有多个匹配项,那么它将不起作用,因为每个文件将成为一个单独的参数,与文本的语法不匹配。一个更好的(虽然不是万无一失的)方法是这样的:

set ctf_error_report_??_????????????.csv
csv_file=$1
set ctf_error_report_??_????????????.???.zip
zip_file=$1

if [ -f "$csv_file" -o -f "$zip_file" ]
then
echo "Successful"
else
echo "Problem"
fi

关于linux - KornShell 脚本中的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7789207/

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