# 错误输出
error(){
local code="${3:-1}"if[[-n "$2"]];then
echo"Error on or near line $1: $2; exiting with status ${code}"elseecho"Error on or near line $1; exiting with status ${code}"
fi
exit"${code}"}trap'error ${LINENO}' ERR
V_ENV=0
# 判断参数是否有效for((i=1;i <= $#;i++)) {
case "${!i}" in
caffe|tf|tf2|mxnet|kaldi|onnx)
postfix="_$1";;"venv")
V_ENV=1
;;*)if[["$1"!= ""]]; then
echo"\"${!i}\" is unsupported parameter"echo $"Usage: $0 {caffe|tf|tf2|mxnet|kaldi|onnx} {venv}"exit 1
fi
;;
esac
}# 脚本绝对路径
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]-$0}")" && pwd )"# 判断Linux系统版本if[[-f /etc/centos-release ]]; then
DISTRO="centos"
elif [[-f /etc/lsb-release ]]; then
DISTRO="ubuntu"
fi
if[[$DISTRO == "centos"]]; then
#判断python版本if command -v python3.8 >/dev/null 2>&1; then
python_binary=python3.8
elif command -v python3.7 >/dev/null 2>&1; then
python_binary=python3.7
elif command -v python3.6 >/dev/null 2>&1; then
python_binary=python3.6
elif command -v python3.5 >/dev/null 2>&1; then
python_binary=python3.5
fi
# 没有python则安装python3.6if[-z "$python_binary"]; then
sudo -E yum install -y https://centos7.iuscommunity.org/ius-release.rpm
sudo -E yum install -y python36u python36u-pip
sudo -E pip3.6 install virtualenv
python_binary=python3.6
fi
# latest pip is needed to install tensorflow
sudo -E "$python_binary"-m pip install --upgrade pip
elif [[$DISTRO == "ubuntu"]]; then
sudo -E apt update
sudo -E apt -y --no-install-recommends install python3-pip python3-venv
python_binary=python3
sudo -E "$python_binary"-m pip install --upgrade pip
elif [["$OSTYPE" == "darwin"*]]; then
python_binary=python3
python3 -m pip install --upgrade pip
fi
if[[$V_ENV-eq 1 ]]; then
# 装虚拟环境$python_binary-m venv $SCRIPTDIR/../venv
source $SCRIPTDIR/../venv/bin/activate
$SCRIPTDIR/../venv/bin/$python_binary-m pip install -r $SCRIPTDIR/../requirements${postfix}.txt
echoecho"Before running the Model Optimizer, please activate virtualenv environment by running \"source ${SCRIPTDIR}/../venv/bin/activate\""elseif[["$OSTYPE" == "darwin"*]]; then
python3 -m pip install -r $SCRIPTDIR/../requirements${postfix}.txt
else# 这里我已经改了
pip install -r $SCRIPTDIR/../requirements${postfix}.txt
fi
echo[WARNING] All Model Optimizer dependencies are installed globally.echo[WARNING]If you want to keep Model Optimizer in separate sandbox
echo[WARNING] run install_prerequisites.sh venv "{caffe|tf|mxnet|kaldi|onnx}"
fi
3.提取命令
if [[ -n "$2" ]]的意思是如果第二个参数不为空,[]可用于比较,在比较字符串时使用两重括号,防止某些情况下出错
0. 前言因为这个脚本在安装python相关的东西十总出问题,所以我要搞清楚它做了什么,自己执行需要的命令,方便解决遇到的问题。1.脚本注释# 错误输出error() { local code="${3:-1}" if [[ -n "$2" ]];then echo "Error on or near line $1: $2; exiting with status ${code}" else echo "Error on or near