文章目录
- 一、后台执行
- 二、串行执行
- 1.成功执行
- 2.失败执行
- 3.成功失败都执行
- 三、继承执行
在实际运维场景中,经常需要在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”的数据。
本篇文章完
更多推荐
【常用运维技巧】Linux一次执行多个命令
发布评论