我尝试在 if-else 语句中使用 bash 脚本测试文件夹中最后创建的 zip 存档。 计划是,如果文件损坏,该语句应返回 else 语句的主体。 对于未损坏的 zip 文件,退出代码是正确的,并且执行了 if 语句的主体。 如果我有一个损坏的 zip 文件,
-qq
选项不会按预期返回错误代码,而是打印一些包含信息的字符串。
if $(ls -Art ~/*.zip | tail -n 1 | xargs unzip -tqq);then
echo 'file is ok'
else
echo 'file is corrupt'
fi
我用
zip -T
和 unzip -tqq
和 unzip -tq
尝试了不同的方法。此外,计划是将每个非 0 的返回值转换为 1,但这似乎不是一种优雅的方法。但我无法让它以预期的方式工作。为什么-qq
不压制所有人类可读信息?