一缕暖阳 發表於 2025-11-26 08:35:38

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

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">方案 1:使用 &amp;&amp; 和 || 操作符</a></li><li><a href="#_label1">方案 2:使用 if 语句检查退出状态</a></li><li><a href="#_label2">方案 3:使用 set -e 和 trap(推荐)</a></li><li><a href="#_label3">方案 4:更健壮的版本</a></li><li><a href="#_label4">使用方法:</a></li></ul></div><p class="maodian"><a name="_label0"></a></p><h2>方案 1:使用 &amp;&amp; 和 || 操作符</h2>
<div class="jb51code"><pre class="brush:bash;">cd /Users/test/Documents/workspace/newspace/vitepress-blog

git pull

pnpm install

pnpm run docs:build &amp;&amp; {
lazygit '{query}'
sshpass -p test. ssh -A -g root@43.139.90.182 'sh startup-blog.sh'
} || {
echo "构建失败,中止后续操作"
exit 1
}
</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112608351766.png" /></p>
<p class="maodian"><a name="_label1"></a></p><h2>方案 2:使用 if 语句检查退出状态</h2>
<div class="jb51code"><pre class="brush:bash;">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
</pre></div>
<p class="maodian"><a name="_label2"></a></p><h2>方案 3:使用 set -e 和 trap(推荐)</h2>
<div class="jb51code"><pre class="brush:bash;">#!/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'
</pre></div>
<p class="maodian"><a name="_label3"></a></p><h2>方案 4:更健壮的版本</h2>
<div class="jb51code"><pre class="brush:bash;">#!/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'
</pre></div>
<p class="maodian"><a name="_label4"></a></p><h2>使用方法:</h2>
<ol><li>将选择的脚本保存为 <code>deploy.sh</code></li><li>给脚本执行权限:<code>chmod +x deploy.sh</code></li><li>运行脚本:<code>./deploy.sh</code></li></ol>
<p><strong>推荐使用方案 3</strong>,<code>set -e</code> 会让脚本在任何一个命令失败时立即退出,代码简洁且行为明确。</p>
頁: [1]
查看完整版本: Linux实现多命令合并执行的四种方案