如何使用 unzip -tqq 返回错误代码 1?

问题描述 投票:0回答:0

我尝试在 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
不压制所有人类可读信息?

bash shell zip unzip
© www.soinside.com 2019 - 2024. All rights reserved.