分享

shell 脚本,初编写

 雪柳花明 2017-06-10
#!/usr/bin/env bash

set -e
#这句语句告诉bash如果任何语句的执行结果不是true则应该退出。
# 这样的好处是防止错误像滚雪球般变大导致一个致命的错误,而这些错误本应该在之前就被处理掉

#sh usign.sh ./Data

#打印参数1,输出./Data
printf "%s\n" $1

#[ -z "$1" ] 如果第一个参数不存在(-z 字符串长度为0
#由系统提供的参数称为位置参数。位置参数的值可以用$N得到
# $0表示程序的名字,$1表示传递给程序的第一个参数

# 如果变量$1为空,则进入if语句 表明运行.sh文件必须输入参数
#如果终端命令:sh usign.sh 会报错,会输出echo语句
if [ -z "$1" ]; then
echo "usage download_and_preproces_mscoco.sh [data dir]"
#echo是输出命令
exit
fi
#fiif语句的结束,相当于end if

printf "%s\n" $(uname)
#输出 Linux

#$(uname) 输出系统内核,若是Linux,解压命令为unzip -np
#处理解压命令
if [ "$(uname)" == "Darwin" ]; then
UNZIP="tar -xf"
else
UNZIP="unzip -nq"
fi


# Create the output directories.
#创建字符串,在第一个参数之后添加/
OUTPUT_DIR="${1%/}"
SCRATCH_DIR="${OUTPUT_DIR}/raw-data"

eval echo '$'OUTPUT_DIR
#输出./Data
eval echo '$'SCRATCH_DIR
#输出./Data/raw-data

#生成文件夹
mkdir -p "${OUTPUT_DIR}"
#./Data 创建Data目录
mkdir -p "${SCRATCH_DIR}"
#./Data/raw-data 创建Data/raw-data目录

#当前路径 /home/dms/PycharmProjects/bash_using
CURRENT_DIR=$(pwd)
eval echo '$'CURRENT_DIR
#输出字符串变量的值

WORK_DIR="$0.runfiles/im2txt/im2txt"
eval echo '$'WORK_DIR
#/home/dms/PycharmProjects/bash_using/usign.sh.runfiles/im2txt/im2txt
BUILD_SCRIPT="${WORK_DIR}/build_mscoco_data"
eval echo '$'BUILD_SCRIPT
#/home/dms/PycharmProjects/bash_using/usign.sh.runfiles/im2txt/im2txt/build_mscoco_data

exit

# Helper function to download and unpack a .zip file.
function download_and_unzip() {
#下载地址
local BASE_URL=${1}
#下载的文件地址
eval echo '$'BASE_URL
#要下载的文件名
local FILENAME=${2}
eval echo '$'FILENAME

#-f filename 如果 filename为常规文件,则为真
#if [ ! 表达式 ] 条件表达式的相反
#非常规文件,进行if语句。
if [ ! -f ${FILENAME} ]; then

echo "Downloading ${FILENAME} to $(pwd)"
#下载数据
wget -nd -c "${BASE_URL}/${FILENAME}"
else
echo "Skipping download of ${FILENAME}"
fi

#解压操作
echo "Unzipping ${FILENAME}"
${UNZIP} ${FILENAME}
}

#进入Data/raw-data目录
cd ${SCRATCH_DIR}

# Download the images.
#下载网址
BASE_IMAGE_URL="http://msvocds.blob.core./coco2014"

#文件名
TRAIN_IMAGE_FILE="train2014.zip"
download_and_unzip ${BASE_IMAGE_URL} ${TRAIN_IMAGE_FILE}
TRAIN_IMAGE_DIR="${SCRATCH_DIR}/train2014"

#输出训练图像的路径
eval echo '$'TRAIN_IMAGE_DIR #输出字符串变量的值


# Download the captions.
#下载网址
BASE_CAPTIONS_URL="http://msvocds.blob.core./annotations-1-0-3"
#文件名
CAPTIONS_FILE="captions_train-val2014.zip"
download_and_unzip ${BASE_CAPTIONS_URL} ${CAPTIONS_FILE}
#拼接字符串
TRAIN_CAPTIONS_FILE="${SCRATCH_DIR}/annotations/captions_train2014.json"
VAL_CAPTIONS_FILE="${SCRATCH_DIR}/annotations/captions_val2014.json"


eval echo '$'TRAIN_CAPTIONS_FILE
eval echo '$'VAL_CAPTIONS_FILE

# Build TFRecords of the image data.
cd "${CURRENT_DIR}"
BUILD_SCRIPT="${WORK_DIR}/build_mscoco_data"

#执行脚本文件
"${BUILD_SCRIPT}" \
--train_image_dir="${TRAIN_IMAGE_DIR}" \
--val_image_dir="${VAL_IMAGE_DIR}" \
--train_captions_file="${TRAIN_CAPTIONS_FILE}" \
--val_captions_file="${VAL_CAPTIONS_FILE}" \
--output_dir="${OUTPUT_DIR}" \
--word_counts_output_file="${OUTPUT_DIR}/word_counts.txt" \

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多