查看unzip -t 结果

check unzip -t result

我想知道如何获得 unzip -t file.zip 的结果,以便我可以在 IF 语句中使用它

目前我有

if [ unzip -t "$file.zip" ]
then
#proceed with script
else
echo "Zip file is not ready"
fi

我也试过 if [! unzip -t "$file.zip" ] 但我想知道是否有办法在继续脚本之前确保文件有效。

我在一个相当简单的网络服务器上,我认为 gzip 不是 运行 并且我无法使用 lsof 来确定文件是否仍在写入。

在正确方向上的任何一点都会很棒。我已经搜索了 google 和这些论坛,但都没有成功。

谢谢。

替换:

if [ unzip -t "$file.zip" ]

有:

if unzip -t "$file.zip"

或者,如果您喜欢安静:

if unzip -t "$file.zip" >/dev/null 2>&1

以上应该适用于任何 POSIX shell。如果你使用 bash 并且更喜欢简洁甚至以可移植性为代价,上面的内容可以简化为:

if unzip -t "$file.zip" &>/dev/null

讨论

命令[,也称为test命令,用于根据某些条件设置退出代码,例如文件是否存在或字符串是否为空。这里不需要 test 命令。 unzip 本身设置了一个适当的退出代码,可以被 if 语句使用。