shell學習之路 流程控制 for

2022-05-22 04:36:13 字數 2085 閱讀 6092

for迴圈的語法:

1.  for 變數 in 值1 值2 值3....

do程式

done

例如:下列指令碼會分別列印4次 分別是morning noon afternoon evening的值

1 #!/bin/bash

2#列印時間

3#author mrfeng45

fortime

inmorning noon afternoon evening6do

7echo $time

8done

例如批量解壓縮:

1 #!/bin/bash

2#批量解壓縮指令碼

3#author: mrf

45 path=/opt/lamp67

cd $path89

ls *.tar.gz > ls

.log

10ls *.tgz >> ls

.log

11for i in $(cat

ls.log)

12do

13tar zxvf $i &>>cc

.log

14done

15rm -rf ls

.log

2.for 語法二

格式:

1

for((初始值;迴圈控制條件;變數變化))2do

3程式4done

例如:

1 #!/bin/bash

2#從1加到100

34 s=0

5for(( i=1;i<=100;i=i+1 ))6

do7 s=$(($s+$i))

8done

9echo

"the sum of 1+2+...+100is: $s

"

例如:批量新增使用者

1 #!/bin/bash

2# 批量新增使用者數量的使用者

3 # author:mr f (e-mail:22222222)4

5 read -p "

please input user name:

" -t 30

name

6 read -p "

please input the number of users:

" -t 30

num7 read -p "

please input the password of users:

" -t 30

pass

8if [ ! -z "

$name

" -a ! -z "

$num

" -a ! -z "

$pass"]

9then

10 y=$(echo $num | sed

's/[0-9]//g')

11if [ -z "

$y" ] ; then

12for ((i=1;i<=$num;i=i+1

))13

do14 /usr/sbin/useradd $name$i &>/dev/null

15echo $pass | /usr/bin/passwd --stdin $n

16 ame$i &>/dev/null

17done

18fi

19fi

20cat /etc/passwd | grep user[1-$num] | cut -d "

:" -f 1 >>userlist.log

當然我也寫了乙個利用 userlist.log進行批量刪除的指令碼方便大家做完實驗後清理

1 #!/bin/bash

2for i in $(cat ./userlist.log)3do

4 /usr/sbin/userdel -r $i &>>del.log

5done

6 #cat

del.log

7rm -rf del.log

《流程控制》shell學習之路 七

示例 a 10 b 20 if then echo a b elif a b then echo a b else echo a b fi for item in 1122 3344 55do echo item done int 1 while int 5 doecho int let int d...

shell學習之路 流程控制 while

while迴圈 介紹 while迴圈是不定迴圈,也稱作條件迴圈。只要條件判斷成立,迴圈就會一直繼續執行,直到條件判斷不成立,迴圈才會停止,這就是和for的固定迴圈不太一樣了 1 while 條件判斷 2do 3程式4done 示例 1 root localhosta1 bash vi while1....

shell流程控制學習

linux shell有一套自己的流程控制語句,其中包括條件語句 if 迴圈語句 for,while 選擇語句 case 下面我將通過例子介紹下,各個語句使用方法。一 shell條件語句 if用法 if語句結構 if then elif else fi if 條件測試語句 then action e...