检查unzip -t结果

时间:2015-02-05 05:50:32

标签: linux shell zip

我想知道我是如何获得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来查明文件是否仍然被写入。

正确方向的任何一点都会很棒。我搜索谷歌和这些论坛,但没有运气。

感谢。

1 个答案:

答案 0 :(得分:3)

替换:

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语句使用。