|
方案 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'
使用方法:
- 将选择的脚本保存为
deploy.sh - 给脚本执行权限:
chmod +x deploy.sh - 运行脚本:
./deploy.sh
推荐使用方案 3,set -e 会让脚本在任何一个命令失败时立即退出,代码简洁且行为明确。 |