linux - 验证 bash 中的一些参数

标签 linux bash

我正在 BASH 中进行验证

if [ !( ( -e $f ) || ($# -lt 2) || ( -d $f ) ) ]; then
    exit 0
fi

我试图查看该文件是否存在,或者它是否是一个目录,或者是否通过终端传递了足够的参数。我可以这样做还是必须以其他方式完成?

最佳答案

我从你的问题中得知你想要拒绝任何不是普通文件的内容。在这种情况下,如果使用 -f 而不是 -e,则对目录的测试是多余的。

if [[  ! -f "$f" || $# -lt 2 ]]; then
    exit 0
fi

顺便说一句,如果这是一个错误退出,您应该以 0 以外的其他值退出 - 在大多数情况下 0 表示成功;导出 1 会更好。

关于linux - 验证 bash 中的一些参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15644849/

相关文章:

linux - Linux 上的 OpenNI 示例

linux - 为什么线程只以大间隔同步?

bash - Bash 中 ". filename"(句点空间文件名)的含义是什么?

linux - Bash 数组创建 : ("$@") vs ($@)

linux - 将全文文件路径分配给变量并使用变量作为 sh 文件中的文件路径

bash - 有选择地从 'iptables -nvL' 命令输出中删除不必要的列空格吗?

linux - 如何在git中检查一个文件从一个分支到另一个分支的变化量?

c - C中的串行通信

linux - 安装 scrapy (openSSL)

bash - 为什么仅当命令位于变量中时才会出现 “Can' t find string terminator” 错误?