You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在变量fl不是有效文件或目录时显示提示,现有判断代码存在问题如何修正

问题原因

你现有代码的逻辑存在布尔运算错误:! -f "$fl" || ! -d "$fl" 的语义是「路径不是普通文件 或者 不是目录」,由于任意路径不可能同时是普通文件和目录,这个判断条件会永远成立,不管路径是否存在都会输出错误提示。

修复方案

方案1:直接用存在性判断(最简洁通用)

用-e参数直接判断路径是否存在,不管类型是普通文件、目录、软链接等都算有效路径,完全匹配你的需求:

if [[ ! -e "$fl" ]]; then
  printf '%s\n' "$fl: File or Directory does not exist"
fi

方案2:严格限定仅普通文件/目录两种类型

如果你需要排除软链接、设备文件等其他类型的路径,只允许普通文件和目录两种有效类型,可以把原代码的||改为&&,语义变为「既不是普通文件 也不是 目录」时才触发提示:

if [[ ! -f "$fl" && ! -d "$fl" ]]; then
  printf '%s\n' "$fl: File or Directory does not exist"
fi

内容的提问来源于stack exchange,提问作者Dilna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:24:00