小福利,发一个检查node的shell脚本
背景: 在公司项目中,我在公司内网完成了功能,然后发布到仿真环境,将来还要发布到外网,为了减少劳动力,我写了如下的shell脚本,来初始化并启动node程序
如下:
node-shell.sh
该shell脚本是用来检查node的版本,并且使用cnpm来初始化,后启动你想要的node程序,包含的功能:
- 首先你需要配置如下,包含默认最低版本,node_bin路径,以及npm_bin路径
# 版本
readonly NODE_VERSION='v0.12'
# 启动相关
node_bin=''
npm_bin=''
- check_version 检查node版本
- 创建cnpm
- 初始化package.json依赖的目录
- 静默启动你的脚本,并且日志名字为start.log
代码直接贴出来吧,反正也不多。又可以撑个场面
#!/bin/bash
# 版本
readonly NODE_VERSION='v0.12'
# 启动相关
dir=`pwd`
node_bin=''
npm_bin=''
# 检查node-bin
function check_node_bin() {
if [ ${node_bin} == '' ]; then
echo '请填写node_bin,必须为绝对路径'
exit 1
fi
if [ ${npm_bin} == '' ]; then
echo '请填写npm_bin,必须为绝对路径'
exit 2
fi
# 随便执行下,确认没有错误
test1=`${node_bin} -v`
# 执行出错
if [ $? -ne 0 ]; then
echo 'node_bin检测错误,请确认node_bin的绝对路径是否正确'
exit 3
fi
# 随便执行下,确认没有错误
test2=`${npm_bin} -v`
# 出错
if [ $? -ne 0 ]; then
echo 'npm_bin执行出错,请确认npm_bin的绝对是否正确'
fi
}
check_node_bin
# 检查版本
function check_version() {
# 默认版本
defualt_version_first=${NODE_VERSION:1:1}
deault_version_second=${NODE_VERSION:3:2}
node_version=`${node_bin} -v`
node_version_first=${node_version:1:1} # v0.12.4 提取 0
node_version_second=${node_version:3:2} # v0.12.4 提取 12
if [ ${node_version_first} -lt ${defualt_version_first} ]; then
echo "运行的Node版本需要${NODE_VERSION}+"
exit 1
fi
if [ ${node_version_second} -lt ${deault_version_second} ]; then
echo "运行的Node版本需要${NODE_VERSION}+"
exit 2
fi
}
check_version
# 新建cnpm
cnpm_bin="${npm_bin} --registry=https://registry.npm.taobao.org --cache=$HOME/.npm/.cache/cnpm --disturl=https://npm.taobao.org/dist --userconfig=$HOME/.cnpmrc"
# 首先npm初始化
${cnpm_bin} install
# 静默启动
${node_bin} ${dir}/server.js > ${dir}/start.log &
echo 'start successfully'