在实际运维场景中,经常需要在linux终端上执行多条命令来达到特定的目的,常用的方法有如下几种。

一、后台执行

在要执行的命令后面加上“&”这个符号,可以使命令在后台执行不占用当前的终端窗口。这样就能继续在终端窗口执行其他命令,提高运维操作和脚本执行效率。

代码如下(示例):

#创建a.sh和b.sh脚本并赋予执行权限

#!/bin/bash
#脚本a
echo "a脚本执行开始:`date '+%Y-%m-%d %T'`"
sleep 30s
echo "a脚本执行完成:`date '+%Y-%m-%d %T'`"

#!/bin/bash
#脚本b
echo "b脚本执行开始:`date '+%Y-%m-%d %T'`"
sleep 60s
echo "b脚本执行完成:`date '+%Y-%m-%d %T'`"

#执行
./a.sh &
./b.sh &

执行效果:
不使用后台执行脚本时要1分30秒。用后台执行时可并行,一分钟这样就执行完了。
在这里插入图片描述

二、串行执行

终端命令输入框可以使用特定的几个符号做分隔,串行执行多个命令。

1.成功执行

顾名思义,由于顺序是串行的,要执行命令的上一条命令执行成功了才会执行。用“&&”做分隔。

代码如下(示例):

#a.sh和b.sh的脚本参考一里面的

#执行
./a.sh && ./b.sh

执行效果:
上一条执行成功了才会执行下一条。
在这里插入图片描述

2.失败执行

顾名思义,由于顺序是串行的,要执行命令的上一条命令执行失败了才会执行。用“||”做分隔。

代码如下(示例):

#a.sh和b.sh的脚本参考一里面的

#执行,第一条命令A是无效命令,执行会报错失败
A || ./a.sh || ./b.sh

执行效果:
A这条指令执行失败了,执行a.sh这个脚本,a.sh脚本执行成功,条件不成立b.sh脚本就没执行了。在实际应用场景中,可以巧妙的做些设置,实现功能。如报错回滚等。
在这里插入图片描述

3.成功失败都执行

顾名思义,由于顺序是串行的,不管上一条命令的执行情况,一直按顺序执行。用“;”做分隔。

代码如下(示例):

#a.sh和b.sh的脚本参考一里面的

#执行,第一条命令A是无效命令,执行会报错失败
A ; ./a.sh ; ./b.sh

执行效果:
A这条指令执行失败了,执行a.sh这个脚本,a.sh脚本执行成功,执行b.sh这个脚本。不管上一条命令执行成功或失败都不影响下一条命令的执行。适用于那些都要执行,但相互没依赖的命令或脚本。
在这里插入图片描述

三、继承执行

使用场景很多。命令与命令间使用“|”做分隔,“|”表示管道,主要功能是把上一条命令的输出,做为下一条命令参数。

代码如下(示例):

#a.sh和b.sh的脚本参考一里面的

#执行,第一条命令A是无效命令,执行会报错失败
du -sh *|grep a.sh

执行效果:
查看当前文件夹下所有文件或目录的大小,把结果作为下条命令的参数,搜索出参数中包含“a.sh”的数据。
在这里插入图片描述

本篇文章完

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐