使用case命令写一个跨目录的sh脚本,支持选择部署某个或多个前端项目且可以选择部署环境
时间: 2023-12-14 22:38:15 浏览: 23
以下是一个示例脚本,可以根据需要进行修改:
```bash
#!/bin/bash
# 设置前端项目路径和环境变量
proj_path="/var/www"
env="prod"
# 定义函数,部署前端项目
deploy_proj() {
cd "$proj_path/$1"
echo "正在部署 $1 ..."
# 执行部署命令
npm run build:$env
echo "$1 部署完成!"
}
# 使用case命令处理命令行参数
case $1 in
proj1)
deploy_proj "proj1"
;;
proj2)
deploy_proj "proj2"
;;
all)
deploy_proj "proj1"
deploy_proj "proj2"
;;
*)
echo "用法: $0 {proj1|proj2|all} [dev|test|prod]"
exit 1
;;
esac
# 如果有第二个参数,修改环境变量
if [ -n "$2" ]; then
case $2 in
dev)
env="dev"
;;
test)
env="test"
;;
prod)
env="prod"
;;
*)
echo "无效的环境参数:$2"
exit 1
;;
esac
fi
echo "部署环境已设置为 $env"
```
运行脚本时,可以指定要部署的前端项目和部署环境:
```
./deploy.sh proj1 prod
```
其中,第一个参数是要部署的前端项目,可以是 "proj1"、"proj2" 或 "all",第二个参数是部署环境,可以是 "dev"、"test" 或 "prod"。如果不指定第二个参数,默认为 "prod"。