語法:for 變量名 in 條件; do …; done
案例1:計算1到100全部數字的和linux
#!/bin/bash sum=0 for i in `seq 1 100` do sum=$[$sum+$i] echo $i done echo $sum
分析上面的案例,咱們先看下下面shellshell
#!/bin/bash for i in `seq 1 10` do echo $i done
執行這個shell,結果以下,結果是返回了1到10的值vim
[root@lijie-01 ~]# sh for1.sh 1 2 3 4 5 6 7 8 9 10
其實在linux中咱們用的更多的是對文件作循環 案例2:文件列表循環bash
#!/bin/bash cd /etc/ for a in `ls /etc/` do if [ -d $a ] then ls -d $a fi done
有下面一個狀況須要注意,for循環時以空格或者回車做爲分割符,在使用 for i in ls ./
;do echo $i;done命令裏面ls ./
做爲判斷條件時,當文件名中有空格時,一個文件會以空格分割拆分紅多個文件code
[root@lijie-01 shell]# vim for2.sh [root@lijie-01 shell]# touch 1 2 [root@lijie-01 shell]# touch 3\ 4.txt [root@lijie-01 shell]# ll 總用量 44 -rw-r--r-- 1 root root 0 4月 20 06:24 1 -rw-r--r-- 1 root root 0 4月 20 06:24 2 -rw-r--r-- 1 root root 0 4月 20 06:24 3 4.txt [root@lijie-01 shell]# ls 3 ls: 沒法訪問3: 沒有那個文件或目錄 [root@lijie-01 shell]# for i in `ls ./`;do echo $i;done //這裏循環出來3 4.txt這個文件被拆分爲兩個文件了 1 2 3 4.txt
以上,所以咱們之後在使用 for i in ls ./
;do echo $i;done命令裏面ls ./
這種類型的判斷條件時,須要注意空格或者回車鍵for循環