把几份相同的前端部署sh脚本合成一个sh脚本
时间: 2024-05-03 08:19:05 浏览: 10
假设你有三个前端项目,每个项目都有一个 `deploy.sh` 部署脚本,你想要将它们合并成一个 `deploy-all.sh` 脚本,可以按照以下步骤操作:
1. 在一个新的文件夹中创建 `deploy-all.sh` 文件。
2. 打开 `deploy-all.sh`,添加以下内容:
```bash
#!/bin/bash
# deploy project 1
cd /path/to/project1
./deploy.sh
# deploy project 2
cd /path/to/project2
./deploy.sh
# deploy project 3
cd /path/to/project3
./deploy.sh
```
3. 将 `/path/to/project1`,`/path/to/project2` 和 `/path/to/project3` 替换为实际的项目路径。
4. 保存文件并关闭。
5. 在终端中,使用 `chmod +x deploy-all.sh` 命令将 `deploy-all.sh` 脚本设置为可执行文件。
6. 在终端中,运行 `./deploy-all.sh` 命令即可同时部署三个前端项目。
相关问题
把几份相同的前端部署sh脚本合成一个sh脚本且支持单独部署某一个项目
可以使用Shell脚本中的参数来实现合并多个部署脚本并支持单独部署某一个项目的功能。以下是一个简单的示例脚本:
```bash
#!/bin/bash
# 定义函数 deploy_project,用于部署指定项目
function deploy_project {
cd $1
# 执行部署命令
npm run deploy
cd ..
}
# 判断是否传入参数,如果没有则执行全部部署
if [ $# -eq 0 ]; then
# 部署项目1
deploy_project project1
# 部署项目2
deploy_project project2
# 部署项目3
deploy_project project3
else
# 如果传入参数,则根据参数部署对应项目
for project in "$@"
do
deploy_project $project
done
fi
```
以上脚本中使用了一个名为 deploy_project 的函数,用于执行部署命令。如果没有传入参数,则执行全部部署;如果传入了参数,则根据参数部署对应的项目。
例如,执行以下命令将部署项目2:
```bash
./deploy.sh project2
```
如果想要部署多个项目,可以同时传入多个参数,例如:
```bash
./deploy.sh project1 project3
```
写一个跨目录部署前端项目的sh脚本
以下是一个简单的跨目录部署前端项目的 sh 脚本:
```sh
#!/bin/bash
# 前端项目路径
FRONTEND_DIR=/path/to/frontend
# 服务器上存放前端文件的路径
SERVER_DIR=/var/www/frontend
# 进入前端项目路径
cd $FRONTEND_DIR
# 安装依赖
npm install
# 打包
npm run build
# 进入服务器上存放前端文件的路径
cd $SERVER_DIR
# 备份原有文件
mv index.html index.html.bak
mv static static.bak
# 将打包生成的文件复制到服务器上
cp -r $FRONTEND_DIR/build/index.html .
cp -r $FRONTEND_DIR/build/static .
# 修改权限
chown -R www-data:www-data index.html static
# 重启服务器
service nginx restart
echo "前端项目部署完成!"
```
这个脚本假定前端项目的源码位于 `/path/to/frontend` 目录下,服务器上存放前端文件的路径为 `/var/www/frontend`。脚本会在前端项目路径下安装依赖,打包生成静态文件,然后将静态文件复制到服务器上,并修改权限,最后重启服务器。如果需要修改路径,可以根据实际情况修改 `FRONTEND_DIR` 和 `SERVER_DIR` 变量。