shell指令碼多程序

2022-05-02 15:03:06 字數 2953 閱讀 1971

shell指令碼再執行過程中就乙個程序,從頭到尾

下面配置shell指令碼執行過程中啟動多個程序同時執行

#!/bin/bash

for ((i=1;i<=10;i++))do(

echo "$i"

sleep 10

) &done

wait

echo -e "########## $seconds ##########"

注:$seconds:是執行完指令碼所用的時間   

wait:是等待所有的程序執行完畢

執行結果   

[root@wcy ~]# bash test.sh 12

3456

78910

########## 10 ##########

程序檢視

[root@wcy ~]# ps -ef | grep test.sh 

root 1764 1565 0 19:23 pts/1 00:00:00 bash test.sh

root 1765 1764 0 19:23 pts/1 00:00:00 bash test.sh

root 1766 1764 0 19:23 pts/1 00:00:00 bash test.sh

root 1767 1764 0 19:23 pts/1 00:00:00 bash test.sh

root 1770 1764 0 19:23 pts/1 00:00:00 bash test.sh

root 1772 1764 0 19:23 pts/1 00:00:00 bash test.sh

root 1773 1764 0 19:23 pts/1 00:00:00 bash test.sh

root 1774 1764 0 19:23 pts/1 00:00:00 bash test.sh

root 1776 1764 0 19:23 pts/1 00:00:00 bash test.sh

root 1777 1764 0 19:23 pts/1 00:00:00 bash test.sh

root 1778 1764 0 19:23 pts/1 00:00:00 bash test.sh

root 1786 1708 0 19:23 pts/2 00:00:00 grep test.sh

[root@wcy ~]# ps -ef | grep test.sh | grep -v grep | wc -l

11

檢視同一時刻多少個sleep在跑

[root@wcy ~]# ps -ef | grep sleep | grep -v grep 

root 2168 2165 0 21:59 pts/1 00:00:00 sleep 10

root 2169 2166 0 21:59 pts/1 00:00:00 sleep 10

root 2172 2167 0 21:59 pts/1 00:00:00 sleep 10

root 2174 2171 0 21:59 pts/1 00:00:00 sleep 10

root 2175 2173 0 21:59 pts/1 00:00:00 sleep 10

root 2176 2170 0 21:59 pts/1 00:00:00 sleep 10

root 2179 2177 0 21:59 pts/1 00:00:00 sleep 10

root 2181 2178 0 21:59 pts/1 00:00:00 sleep 10

root 2182 2180 0 21:59 pts/1 00:00:00 sleep 10

root 2184 2183 0 21:59 pts/1 00:00:00 sleep 10

[root@wcy ~]# ps -ef | grep sleep | grep -v grep  | wc -l

10

多程序的shell指令碼可以用於並行執行多工

#!/bin/bash

for ((i=1;i<=1;i++))do(

for ((num=1;num<=100;num++))

do echo "task1-- $num"

sleep 1

done

) &(

for ((ber=1;ber<=100;ber++))

do echo "task2-- $ber"

sleep 1

done

) &done

wait

效果,兩個同時執行

[root@wcy ~]# bash duo.sh 

task2-- 1

task1-- 1

task2-- 2

task1-- 2

task2-- 3

task1-- 3

task2-- 4

task1-- 4

········

指令碼程序

[root@wcy ~]# ps -ef | grep duo.sh | grep -v grep 

root 2221 1491 0 22:13 pts/0 00:00:00 bash duo.sh

root 2222 2221 0 22:13 pts/0 00:00:00 bash duo.sh

root 2223 2221 0 22:13 pts/0 00:00:00 bash duo.sh

同時執行的程序

[root@wcy ~]# ps -ef | grep sleep | grep -v grep 

root 2357 2223 0 22:14 pts/0 00:00:00 sleep 1

root 2358 2222 0 22:14 pts/0 00:00:00 sleep 1

shell多程序執行

shell在linux中,是使用者和kernel溝通的橋梁,採用c編寫,既是一種命令語言,也是一種解釋型指令碼語言,我們常寫的ls,grep就是基本的shell命令。shell指令碼是將要執行的命令按一定順序寫成的乙個文字檔案,最近遇到乙個需求,要將一定數量的命令快速執行,而每次執行都需要一定的時間...

SHELL指令碼 多命令邏輯執行順序

bash shell系列文章 linux中可以使用分號 雙and號 和雙豎線 來連線多個命令。單 符號也算命令連線符號,只不過它是將其前面的命令放入後台執行,所以可以變相地實現命令並行執行。command1 command2 命令之間沒有邏輯關係。分號連線的命令會按照順序從前向後依次執行,但分號兩端...

執行Shell指令碼(多種方法)

在新程序中執行 shell 指令碼有多種方法。1 將 shell 指令碼作為程式執行 shell 指令碼也是一種解釋執行的程式,可以在終端直接呼叫 需要使用 chmod 命令給 shell 指令碼加上執行許可權 如下所示 mozhiyan localhost cd demo 切換到 test.sh ...