每天学一点儿shell:shell脚本的异步执行
生活随笔
收集整理的這篇文章主要介紹了
每天学一点儿shell:shell脚本的异步执行
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- shell管道"|"
- shell并行執行"&"
- shell串行執行"&&"
shell管道"|"
管道用法: command1 | command2 | command3 等等
用法舉例:
簡單理解就是把前一個命令的輸出結果當為下一個命令的數據入參,用管道比較形象,數據像水流一樣從一個水管流到下一個水管。
再舉個例子:
-s是file size,-n是numeric-sort,-r是reverse,反轉
這個命令就是將文件按照數據文件的大小按照從大到小進行排序并輸出。
shell并行執行"&"
shell 通過“&”來并行執行shell腳本,相當于每一個腳本都是單獨的進程。
舉例如下:
腳本1
腳本2
[root@hadoop-master shell-asy]# cat test2.sh #!/bin/bash echo "腳本2開始執行 "`date +"%Y%m%d %H:%M:%S"` sleep 3 echo "腳本2執行結束 "`date +"%Y%m%d %H:%M:%S"`腳本3
[root@hadoop-master shell-asy]# cat test3.sh #!/bin/bash echo "腳本3開始執行 "`date +"%Y%m%d %H:%M:%S"` sleep 5 echo "腳本3執行結束 "`date +"%Y%m%d %H:%M:%S"`異步運行腳本start-asy.sh
[root@hadoop-master shell-asy]# cat start-asy.sh #!/bin/bash echo "并行執行" sh ./test1.sh & sh ./test2.sh & sh ./test3.sh &wait echo "主線程執行結束"執行結果如下:
[root@hadoop-master shell-asy]# 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 主線程執行結束shell串行執行"&&"
shell中默認的就是串行執行腳本,如果將兩條命令合并成一條執行可以加&&作為連接
例如:執行腳本并輸出執行時間
下面是順序執行腳本并輸出執行時間
[root@hadoop-master shell-asy]# 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:05總結
以上是生活随笔為你收集整理的每天学一点儿shell:shell脚本的异步执行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每天学一点儿shell:linux中时间
- 下一篇: Mysql:AVG()函数如何去除0值做