shell 學習之for語句
一、for語法
for 變數 in 列表;do
迴圈體
done
二、常見用法
1、for用來遍歷目錄
1
2
3
4
5
6
7
8
9
10
|
#!/bin/bash #Version:0.1 #Author:lovelace #pragram:This scripts is print all files in directory #difine an varibale DIR= "/home/scripts/51cto"
#All files in directory traversal for f in $( ls $DIR); do
echo $f
done |
輸出結果為:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
[root@lovelace for ] # ./dir.sh
1.sh 2curl.sh adduer.sh aliquot.sh argument.sh argusum.sh curl.sh dd .sh
dirper.sh info.sh info.tt ipcheck.sh jugement.sh netcard.sh sum .sh
test .sh
The Frist week The Third week |
2、for ((初始條件;終止條件;異動項))
do
命令區域
done
1
2
3
4
5
6
7
8
9
10
11
12
|
#!/bin/bash #Version:0.1 #Author:lovelace #pragram:This pragram is and the sum from 1 to 100 #define an integer declare -i i
#loops for ((i=1;i<=10;i=i+1))
do let sum +=1
done echo "The result is:" $ sum
|
輸出結果為:
1
2
|
[root@lovelace for ] # ./sorsum.sh
The result is: 10 |
3、for 無窮迴圈
for ((;1;));do
命令區域
done
1
2
3
4
5
|
[root@lovelace for ] # cat forover.sh
#!/bin/bash for ((;1;)); do
echo "forever..."
done |
輸出結果:
1
2
3
4
5
6
7
8
|
[root@lovelace for ] # ./forover.sh
forever... forever... forever... forever... forever... forever... forever... |
三、關於break和continue
break、continue 一樣可以運用在for while until select這4中迴圈中,
break :退出迴圈 提前退出
continue:提前進入下一輪迴圈 ,continue後面的語句將不再執行
示例(計算1到100內能被3整除的數之和):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#!/bin/bash #Verson:0.1 #Auther:lovelace #Pragram:This pragram is calculation from 1 to 100 aliquot 3 sum # declare -i i=0
declare -i sum =0
#use loop traverse from 1 to 100 while [ $i -lt 100 ]; do
let i++
#jugement aliqotu 3 or not if [ $(($i%3)) - eq 0 ]; then
let sum +=i
else continue fi done #print sum echo "from 1 to 100 aliquot 3 sum is $sum"
|
輸出結果為:
1
2
|
[root@lovelace for ] # ./three.sh
from 1 to 100 aliquot 3 sum is 1683
|
四、再次重提如何生成列表
如何生成列表:
1、整數列表
{1..100} 生存1到100的列表
2、seq
seq 10 1到10
seq 5 10 5到10
seq 5 10 2 返回列表為6 8 10
3、`ls /etc`
生成列表不單單隻有我們列出的這些,實際案例上需要靈活運用
示例:(分別顯示當前系統上所有預設shell中為bash的使用者和預設為nologin的使用者)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
[root@lovelace for ] # cat checkbash.sh
#!/bin/bash #Version:0.1 #Author:lovelace #pragram:This scripts is check user bash and print it #取出使用bash的使用者個數 bashline=` grep 'bash$' /etc/passwd | wc -l`
#取出使用nologin的使用者個數 nologinline=` grep 'nologin$' /etc/passwd | wc -l`
#取出bash使用者列表 bashuser=` grep 'bash$' /etc/passwd | cut -d: -f1`
#取出nologin使用者列表 nologin=` grep 'nologin$' /etc/passwd | cut -d: -f1`
#遍歷使用bash的使用者並列印出來 for x in $bashuser; do
echo "bash users is:$x"
done #遍歷使用nologin的使用者並列印出來 for y in $nologin; do
echo "nologin users is:$y"
done #結果如下 [root@lovelace for ] # ./checkbash.sh
bash users is:root
bash users is:nick
bash users is:kale
bash users is:user2
bash users is:user3
bash users is:user4
bash users is:user5
bash users is:user6
bash users is:user7
bash users is:user8
bash users is:user9
bash users is:user10
bash users is:mark
bash users is:lovelace
bash users is:lovetest
nologin users is:bin
nologin users is:daemon
nologin users is:adm
nologin users is:lp
nologin users is:mail
nologin users is:uucp
nologin users is:operator
nologin users is:games
nologin users is:gopher
nologin users is: ftp
nologin users is:nobody
nologin users is:nscd
nologin users is:vcsa
nologin users is:pcap
nologin users is:ntp
nologin users is:dbus
nologin users is:avahi
nologin users is:rpc
nologin users is:mailnull
nologin users is:smmsp
nologin users is:sshd
nologin users is:oprofile
nologin users is:rpcuser
nologin users is:nfsnobody
nologin users is:xfs
nologin users is:haldaemon
nologin users is:avahi-autoipd
nologin users is:gdm
nologin users is:sabayon
nologin users is:jack
|
本文轉自lovelace521 51CTO部落格,原文連結:http://blog.51cto.com/lovelace/1211373,如需轉載請自行聯絡原作者
相關文章
- shell學習-常用語句
- Java學習之跳轉語句Java
- SQL語句基礎學習之TRIMSQL
- shell程式設計之條件語句程式設計
- MyBatis學習 之 三、動態SQL語句MyBatisSQL
- SQL 語句學習SQL
- sql語句學習SQL
- 04 shell程式設計之迴圈語句程式設計
- 02 shell程式設計之條件語句程式設計
- 腦圖學習 JavaScript 之犀牛書【五】語句JavaScript
- Shell 指令碼語句指令碼
- 學習Scala IF…ELSE 語句
- PLSQL學習——控制語句SQL
- 快速學習MySQLSQL語句MySql
- Shell指令碼之for迴圈語句的應用指令碼
- Java學習之分支結構---判斷語句:if語句和switch語句Java
- SQLite語句學習筆記SQLite筆記
- 學習Rust 條件語句Rust
- sql語句學習總結SQL
- python學習:for else語句Python
- mysql sql語句學習(一)MySql
- 新學習的Java語句Java
- rust學習四、控制語句Rust
- Java學習中迴圈語句的學習Java
- 從零開始學習C++之if判斷語句C++
- flask之控制語句 if 語句與for語句Flask
- 03 shell程式設計之case語句與函式程式設計函式
- Shell程式設計基礎學習之四:語法結構程式設計
- 簡單的SQL語句學習SQL
- 物聯網學習教程——if語句
- Python學習筆記 - if語句Python筆記
- 學習MySQL的select語句MySql
- Java學習筆記--sql語句Java筆記SQL
- MyBatis學習 之 二、SQL語句對映檔案(1)resultMapMyBatisSQL
- SQL語句基礎學習之Alter Table [記不住呀呵呵]SQL
- Python學習筆記3(條件語句+迴圈語句)Python筆記
- Python學習筆記(三)——條件語句、迴圈語句Python筆記
- 【SQL Server學習筆記】Delete 語句、Output 子句、Merge語句SQLServer筆記delete