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

 更新时间:2025年11月26日 08:35:38   作者:檀越@新空间  
这篇文章主要介绍了四种处理脚本退出状态的方法,推荐使用方案3,即使用`set-e`和`trap`,这样可以确保脚本在任何一个命令失败时立即退出,代码简洁且行为明确,需要的朋友可以参考下

方案 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 会让脚本在任何一个命令失败时立即退出,代码简洁且行为明确。

到此这篇关于Linux实现多命令合并执行的四种方案的文章就介绍到这了,更多相关Linux多命令合并执行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 分享apache http服务器设置虚拟主机的方法

    分享apache http服务器设置虚拟主机的方法

    对于多个域名绑定到一台服务器上,需要进行虚拟主机(virtual host)相关的设置,假设我要设置fuwu.jb51.net到一台服务器上,应该如何做虚拟主机的设置呢?
    2011-08-08
  • Linux云服务器挂载新磁盘的方法步骤

    Linux云服务器挂载新磁盘的方法步骤

    这篇文章主要介绍了Linux云服务器挂载新磁盘的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • Linux安装NFS全过程

    Linux安装NFS全过程

    这篇文章主要介绍了Linux安装NFS全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Linux中/var/spool/postfix/maildrop占空间很大的原因解析

    Linux中/var/spool/postfix/maildrop占空间很大的原因解析

    这篇文章主要给大家介绍了关于Linux中/var/spool/postfix/maildrop占空间很大的原因解析,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-04-04
  • Ubuntu中Opencv的安装使用教程

    Ubuntu中Opencv的安装使用教程

    Opencv就不解释了,是个很有名的图形库。下面这篇文章主要介绍了Ubuntu中Opencv安装使用的相关资料,文中介绍的非常详细,需要的朋友们下面来一起看看吧。
    2017-04-04
  • Linux服务器安装GRUB步骤

    Linux服务器安装GRUB步骤

    在本篇文章中我们给大家整理了Linux服务器安装GRUB的详细步骤以及相关注意事项,有需要的朋友们参考下。
    2018-09-09
  • Apache服务器中使用.htaccess实现伪静态URL的方法

    Apache服务器中使用.htaccess实现伪静态URL的方法

    这篇文章主要介绍了Apache服务器中使用.htaccess实现伪静态URL的方法,示例结合PHP脚本,需要的朋友可以参考下
    2015-07-07
  • 使用nohup和--remove-source-files在后台运行rsync并记录日志方式

    使用nohup和--remove-source-files在后台运行rsync并记录日志方式

    这篇文章主要介绍了使用nohup和--remove-source-files在后台运行rsync并记录日志方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • Linux YUM仓库及NFS共享服务方式

    Linux YUM仓库及NFS共享服务方式

    YUM(Yellowdog Updater Modified)是基于RPM包的软件包管理器,专门用于解决软件包的依赖关系,支持通过FTP、HTTP服务或本地目录从集中的YUM软件仓库获取软件包,YUM能够自动处理包依赖问题,简化了软件安装和更新过程
    2024-09-09
  • Ubuntu 16.04 LTS系统里中文txt文件打开的问题解决

    Ubuntu 16.04 LTS系统里中文txt文件打开的问题解决

    这篇文章主要给大家介绍了关于Ubuntu 16.04 LTS系统里中文txt文件打开问题的解决方法,文中通过示例代码将解决的方法介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04

最新评论