查看: 93|回复: 0

Linux实现多命令合并执行的四种方案

[复制链接]

0

主题

0

回帖

0

积分

积极分子

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2008-7-30
发表于 2025-11-26 08:35:38 | 显示全部楼层 |阅读模式

方案 1:使用 && 和 || 操作符

cd /Users/test/Documents/workspace/newspace/vitepress-blog

git pull

pnpm install

pnpm run docs:build && {
  lazygit '{query}'
  sshpass -p test. ssh -A -g root@43.139.90.182 'sh startup-blog.sh'
} || {
  echo "构建失败,中止后续操作"
  exit 1
}

方案 2:使用 if 语句检查退出状态

cd /Users/test/Documents/workspace/newspace/vitepress-blog

git pull

pnpm install

# 执行构建并检查结果
if pnpm run docs:build; then
  echo "构建成功,继续执行后续步骤"
  lazygit '{query}'
  sshpass -p test. ssh -A -g root@43.139.90.182 'sh startup-blog.sh'
else
  echo "构建失败,中止后续操作"
  exit 1
fi

方案 3:使用 set -e 和 trap(推荐)

#!/bin/bash
set -e  # 遇到错误立即退出

cd /Users/test/Documents/workspace/newspace/vitepress-blog

git pull

pnpm install

pnpm run docs:build

# 只有构建成功才会执行到这里
lazygit '{query}'

sshpass -p test. ssh -A -g root@43.139.90.182 'sh startup-blog.sh'

方案 4:更健壮的版本

#!/bin/bash

cd /Users/test/Documents/workspace/newspace/vitepress-blog || {
  echo "目录不存在"
  exit 1
}

git pull || {
  echo "git pull 失败"
  exit 1
}

pnpm install || {
  echo "依赖安装失败"
  exit 1
}

pnpm run docs:build || {
  echo "构建失败,中止后续操作"
  exit 1
}

lazygit '{query}'

sshpass -p test. ssh -A -g root@43.139.90.182 'sh startup-blog.sh'

使用方法:

  1. 将选择的脚本保存为 deploy.sh
  2. 给脚本执行权限:chmod +x deploy.sh
  3. 运行脚本:./deploy.sh

推荐使用方案 3set -e 会让脚本在任何一个命令失败时立即退出,代码简洁且行为明确。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部