目录
3.如果文件已经存在根据内核验证md5, 其中uname -s 输出内核名称。
4.如果文件不存在使用wget下载。tar解压,其中z代表gzip的压缩包,x代表解压,v代表显示过程信息,f代表后面接的是文件 。
这个是下载脚本的标配
这里有两个难点:
1.关于下载地址的解读如下,参考:
举个例子:
bash /home/ldsw/py-faster-rcnn-master/data/scripts/fetch_faster_rcnn_models.sh
则BASH_SOURCE[0]的获取的第一个参数就是/home/ldsw/py-faster-rcnn-master/data/scripts/fetch_faster_rcnn_models.sh
dirname是取出地址,dirname "${BASH_SOURCE[0]}",根据上面的例子是/home/ldsw/py-faster-rcnn-master/data/scripts/
可以cd "$( dirname "${BASH_SOURCE[0]}" )/../"表示这个目录存在,pwd取出当前路径
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../" && pwd )"如果两项都成立,则赋值给DIR
上面这里例子DIR=/home/ldsw/py-faster-rcnn-master/data/
2.关于if中的测试条件,参考:
-d:测试目录是否存在
-f:测试档案是否存在
3.如果文件已经存在根据内核验证md5, 其中uname -s 输出内核名称。
4.如果文件不存在使用wget下载。tar解压,其中z代表gzip的压缩包,x代表解压,v代表显示过程信息,f代表后面接的是文件 。
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../" && pwd )"
cd $DIR
FILE=faster_rcnn_models.tgz
URL=https://dl.dropboxusercontent.com/s/o6ii098bu51d139/faster_rcnn_models.tgz?dl=0
CHECKSUM=ac116844f66aefe29587214272054668
if [ -f $FILE ]; then
echo "File already exists. Checking md5..."
#uname -s 输出内核名称
os=`uname -s`
if [ "$os" = "Linux" ]; then
checksum=`md5sum $FILE | awk '{ print $1 }'`
elif [ "$os" = "Darwin" ]; then
checksum=`cat $FILE | md5`
fi
if [ "$checksum" = "$CHECKSUM" ]; then
echo "Checksum is correct. No need to download."
exit 0
else
echo "Checksum is incorrect. Need to download again."
fi
fi
echo "Downloading Faster R-CNN demo models (695M)..."
wget $URL -O $FILE
echo "Unzipping..."
tar zxvf $FILE
echo "Done. Please run this command again to verify that checksum = $CHECKSUM."