每天学⼀点⼉shell :shell 脚本的异步执⾏
⽂章⽬录
shell 管道"|"管道⽤法: command1 | command2 | command3 等等
⽤法举例:
简单理解就是把前⼀个命令的输出结果当为下⼀个命令的数据⼊参,⽤管道⽐较形象,数据像⽔流⼀样从⼀个⽔管流到下⼀个⽔管。再举个例⼦:
-s是file size,-n是numeric-sort,-r是reverse,反转
这个命令就是将⽂件按照数据⽂件的⼤⼩按照从⼤到⼩进⾏排序并输出。
shell 并⾏执⾏"&"
shell 通过“&”来并⾏执⾏shell脚本,相当于每⼀个脚本都是单独的进程。
举例如下:
脚本1
脚本2
脚本3异步运⾏脚本start-asy.sh # ps -ef|grep java root 5304 2878 0 05:58 pts /1 00:00:00 grep --color=auto java
1
2# ls -s|sort -nr 4 test3.sh 4 test2.sh 4 test1.sh 4 start -syn .sh 4 start -asy .sh 总⽤量 20
1
234
5
6
7# cat test1.sh #!/bin/bash echo "脚本1开始执⾏ "`date +"%Y%m%d %H:%M:%S"`sleep 5echo "脚本1执⾏结束 "`date +"%Y%m%d %H:%M:%S"`12
3
4
5# cat test2.sh #!/bin/bash echo "脚本2开始执⾏ "`date +"%Y%m%d %H:%M:%S"`sleep 3echo "脚本2执⾏结束 "`date +"%Y%m%d %H:%M:%S"`12
3
4
5# cat test3.sh #!/bin/bash echo "脚本3开始执⾏ "`date +"%Y%m%d %H:%M:%S"`sleep 5echo "脚本3执⾏结束 "`date +"%Y%m%d %H:%M:%S"`1
2
3
4
5
执⾏结果如下:
shell 串⾏执⾏"&&"
shell中默认的就是串⾏执⾏脚本,如果将两条命令合并成⼀条执⾏可以加&&作为连接例如:执⾏脚本并输出执⾏时间
下⾯是顺序执⾏脚本并输出执⾏时间# cat start-asy.sh #!/bin/bash echo "并⾏执⾏"sh ./test1.sh &sh ./test2.sh &sh ./test3.sh &wait echo "主线程执⾏结束"
1
2
3
4
5
6
78
9# sh start-asy.sh 并⾏执⾏脚本1开始执⾏ 20200917 07:21:00脚本2开始执⾏ 20200917 07:21:00脚本3开始执⾏ 20200917 07:21:00脚本2执⾏结束 20200917 07:21:03脚本1执⾏结束 20200917 07:21:05脚本3执⾏结束 20200917 07:21:05主线程执⾏结束
1
23
4
5
6
7
8
9# cat start-syn.sh #!/bin/bash echo "串⾏执⾏"sh ./test1.sh sh ./test2.sh sh ./test3.shshell最简单脚本
1
2
3
4
5
6# sh start-syn.sh && date +"%Y-%m-%d %T" 串⾏执⾏脚本1开始执⾏ 20200917 07:26:52脚本1执⾏结束 20200917 07:26:57脚本2开始执⾏ 20200917 07:26:57脚本2执⾏结束 20200917 07:27:00脚本3开始执⾏ 20200917 07:27:00脚本3执⾏结束 20200917 07:27:05
2020-09-17 07:27:051
2
3
4
5
6
7
8
9
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论