shell指令碼 迴圈及併發控制

2021-09-20 07:04:16 字數 2506 閱讀 6142

#!/bin/bash

read -p "input os_version : " os_version

if [ "$os_version" = "7.3" ];then

cat >/etc/aaa <<-eof #就是講下面的內容寫到/etc/aaa中

name=cj

passwd=cj

eofelif ["$os_version" = "6.4" ];then

cat >/etc/bbb <<-eof

name=gx

passwd=gx

eoffi

#!/bin/bash

ifs=$'\n' #按換行分割

for i in `cat ./bbb`

do echo $i

done

for 變數名 [ in 取值列表 ]

do迴圈體

done

for ((初值;條件;步長))

do迴圈體

done

for i `seq 1 2 100`

doecho $i

done

寫乙個是shell指令碼,判斷tmp下是否存在普通檔案aa.txt,檔案存在則輸出檔案詳細資訊,檔案不存在則建立檔案

#!/bin/bash

if [ -f ./aa.txt ];then

cat ./aa.txt

else

>./aa.txt

fi~

#!/bin/bash

>ip.txt

for i in

do & #放在後台

done

wait #等待上面都執行完,下面的才會執行

echo "finished...."

time pingtest.sh     統計程式與執行時間

[root@tianyun scripts]# cat user.txt

zhuzhu1          111

yang1              222

zhang2            333

#!/bin/bash

if [ $# -eq 0 ];then

echo "引數不能為0"

exit 1

fiif [ ! -f $1 ];then

echo "error file"

exit 2

fi#按回車分割

ifs=$'\n'

for line in `cat $1`

do user=`echo "$line" | awk -f"\t" ''`

pass=`echo "$line" | awk -f"\t" ''`

id $user &>/dev/null

if [ $? -eq 0 ];then

echo "user $user already exists"

else

useradd $user

echo "$pass" | passwd --stdin $user &>/dev/null

if [ $? -eq 0 ];then

echo "$user is created."

fifidone

#!/bin/bash

#!/bin/bash

for ip in `cat ip.txt`

do &

done

wait

echo "finished...."

while read user

do useradd $user

done < $1

#!/bin/bash

ip=10.18.42.127

until ping -c1 -w1 $ip &>/dev/null

do sleep 1 #如果ping不通就執行do

done

echo "$ip is up"

#!/bin/bash

thread=5

tmp_fifofile=/tmp/$$.fifo

mkfifo $tmp_fifofile

exec 8<> $tmp_fifofile

rm $tmp_fifofile

for i in `seq $thread`

do echo >&8

done

for i in

do read -u 8

& #放在後台

done

wait #等待上面都執行完,下面的才會執行

echo "finished...."

Shell指令碼併發及併發數的控制

正常情況下,shell指令碼是序列執行的,一條命令執行完才會執行接下來的命令。如下 bin bash for i in seq 1 10 do echo i done echo end 指令碼執行的結果如下 123 4567 8910 end echo 1命令序列執行,如果命令耗時較長導致總時間較長...

shell指令碼併發控制詳解

file descriptors fd,檔案描述符或檔案控制代碼 程序使用檔案描述符來管理開啟的檔案 檢視當前程序的fd 確定以下三點 如何exec開啟乙個檔案 exec 3 file1.txt 如何exec關閉乙個檔案 釋放檔案控制代碼 如果沒有釋放控制代碼,檔案刪除後描述符依然還在 exec 3...

shell指令碼 for迴圈

迴圈語句 while對於要求控制迴圈次數 操作物件按數字順序編號,按特定條件執行重複操作。重複測試某個條件時,只要條件成立就會反覆執行 無限 除非強制終止,或者exit語句退出指令碼 for迴圈語句 需要指定乙個變數以及可以取值的取值列表,針對每乙個不同的取值執行相同的命令序列,直到變數值用盡,退出...