1.read命令
read -p "请输入用户名:" username 等同于python中的username=input("请输入用户名")
从标准输入读取数据并赋值给变量:read var ;
从输入读取读个内容并赋值给var1,var2,var3: read var1 var2 var3;
不指定变量(会赋值给默认的变量REPLY): read;
2.脚本参数传递
$0 脚本名称
$1~$n 获取参数
$# 传给脚本的参数的个数
$$ 脚本运行的当前进程的进程号PID
$* 以一个单字符串显示所有向脚本传递的参数
$? 显示最后命令的退出状态,0表示没有错误,其余值表示有错误.
3.算数运算(注意:算数运算表达式引号为反引号` `,且各组成间的空格必须有,否则报错不好排查)
a=10 b=20
+ 加法 `expr $a + $b` 结果为30
- 减法 `expr $a - $b` 结果为-10
* 乘法 `expr $a \* $b` 结果为200 (乘法*需要转义字符\转义)
/ 除法 `expr $b / $a` 结果为2
% 取余 `expr $a % $b` 结果为10
= 赋值 a=$b 将变量b的值赋值给a
== 相等 相同时返回true [ $a == $b ] 返回false
!= 不相等 不相等时返回true [ $a != $b ] 返回true
-eq 检测相等 [ $a -eq $b ] 返回false
-ne 检测不相等 [ $a -ne $b ] 返回true
-gt 检测左边是否大于右边 [ $a -gt $b ] 返回false
-lt 检测左边是否小于右边 [ $a -lt $b ] 返回true
-le 检测左边是否小于等于右边 [ $a -le $b ] 返回true
-ge 检测左边是否大于等于右边 [ $a -ge $b ] 返回false
4.脚本部署程序
#!/bin/bash
#Author: chuntian_tester
#Date: 2019-05-11
#Deploy flask app
# 1.打包
function pack_code
{
tar -cvzf mynginx.tar.gz /home/mynginx # 打包命令:tar -cvzf 打包后的名.tar.gz /待打包的目录名
# 解压命令:tar -xvzf 待解压的报名.tar.gz /存放解压文件的目录名
}
# 2.上传
function upload_code
{
{
pass}
}
# 3.解压
PROJECT_DIR="$HOME/Projects"
PROJECT_NAME="mynginx"
CODE_PATH="/home/mynginx.tar.gz"
function unpack_code
{
# 判断目录是否存在,不存在就创建
if [ ! -e "${PROJECT_DIR}" ]; then
{
echo "${PROJECT_DIR} is not exist!"
mkdir -p ${PROJECT_DIR} && echo "${PROJECT_DIR} create success!" || echo "${PROJECT_DIR} create failed!"
}
cd "${PROJECT_DIR}"
# 判断项目是否存在,存在就删除
[ -e "${PROJECT_NAME}" ] && rm -rf "${PROJECT_NAME}"
#解压到当前目录
tar -xvzf "${CODE_PATH}" ./
}
# 4。安装pythonpython3相关环境
function install_python3
{
# 判断python3是否已安装,未安装则执行安装
if [ ! $(python3 --version)=0 ]; then
{
# 以centos 用yum安装示例
yum update -y &> /dev/null
yum install -y python3 &> /dev/null
}
}
# 5。安装设置虚拟环境
function install_virtualenv
{
# 判断虚拟环境dev01是否存在
if [ ! -e /home/dev01 ]; then
{
# python -m venv "虚拟环境名" 创建虚拟环境
python3 -m venv "dev01"
# 使用虚拟环境
source dev01/bin/activate
# 进入项目,找到requirements.txt文件安装项目以来包,假设该文件在mynginx中
cd /home/mynginx
pip3 install -i https://pypi.douban.com/simple -r requirementx.txt
}
}
# 6。下载各种安装包及依赖
function install_extends
{
# 合到了 上面第 5 点
}
# 7。gunicorn
function install_config_gunicorn
{
# 安装 gunicorn
pip3 install gunicorn
# gunicorn启动服务
gunicorn -w 4 -b 0.0.0.0:5000 run:app
# -w:workers缩写,表示进程数
# -b: 执行0.0.0.0后就可以通过ip+port访问web页面
# run: 表示app核心对象所在的py文件:run.py中
# app: application核心对象。
}
# 8。Nginx安装
function install_config_nginx
{
}
# 9。进程管理 supervisor
function check_process
{
}
# 10.主程序