用于解压缩文件的 Bash 脚本 -- 出现错误:无法查找或打开

用于解压缩文件的 Bash 脚本 -- 出现错误:无法查找或打开

这是我的脚本:

Z=/var/pixel/sftp/gisftp/pixel_images/pixel_images_archive.zip
if [ $Z ]; then
    echo "$Z exists"
    unzip $Z -d test
else
   echo "$Z doesn't exist!"
fi

运行脚本时我得到了这个:

/var/pixel/sftp/gisftp/pixel_images/pixel_images_archive.zip exists
unzip:  cannot find or open
/var/pixel/sftp/gisftp/pixel_images/pixel_images_archive.zip, /var/pixel/sftp/gisftp/pixel_images/pixel_images_archive.zip.zip or /var/pixel/sftp/gisftp/pixel_images/pixel_images_archive.zip.ZIP.

怎么存在又不存在??

我应该如何解决这个问题?

答案1

[ $Z ]只测试字符串不为空(并且[ -n "$Z" ]最好),而不测试字符串命名的文件是否存在。用于[ -e "$Z" ]此。请参阅手册页test或您的 shell 的文档(因为[可能是内置的 shell)。

test(这是 的全名[)还允许您检查文件是否存在且不为空 ( test -s "$Z"),或者是否存在且是常规文件 ( test -f "$Z") 等。

相关内容