我想知道我是如何获得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来查明文件是否仍然被写入。
正确方向的任何一点都会很棒。我搜索谷歌和这些论坛,但没有运气。
感谢。
答案 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
语句使用。