【CentOS 7Shell编程5】,for循环#180211

hellopasswd


for循环

  • 语法:for变量名in条件;do...;done
  • 案例1 #!/bin/bash sum=0 for i in seq 1 100 do sum=$[$sum+$i] echo $i done echo $sum
[root@localhost ~]# cd shell/
[root@localhost shell]# vi 1.sh
      1 #!/bin/bash
      2 for i in `seq 1 10`
      3 do
      4     echo $i
      5 done
[root@localhost shell]# sh 1.sh 
1
2
3
4
5
6
7
8
9
10

[root@localhost shell]# vi 1.sh
      1 #!/bin/bash
      2 sum=0
      3 for i in `seq 1 100`
      4 do  
      5     sum=$[$sum+$i]
      6 done
      7     echo $sum
[root@localhost shell]# sh 1.sh 
5050

想知道for语句的计算过程可以添加一个参数-x

[root@localhost shell]# vi 1.sh
      1 #!/bin/bash
      2 cd /etc/
      3 for a in `ls /etc/`
      4 do
      5     if [ -d $a ]
      6     then
      7         ls -d $a
      8     fi
      9 done

遍历

[root@localhost shell]# for i in `seq 1 3`; do echo $i; done
1
2
3
[root@localhost shell]# seq 1 3
1
2
3
[root@localhost shell]# for i in 1 2 3; do echo $i; done
1
2
3

注意

[root@localhost shell]# mkdir user
[root@localhost shell]# cd user/
[root@localhost user]# touch 1 2
[root@localhost user]# touch 3\ 4
[root@localhost user]# ls -l
total 0
-rw-r--r--. 1 root root 0 Feb 10 21:04 1
-rw-r--r--. 1 root root 0 Feb 10 21:04 2
-rw-r--r--. 1 root root 0 Feb 10 21:04 3 4
[root@localhost user]# for i in `ls ./`; do echo $i; done
1
2
3
4

以这种形式,for循环会以空格、回车、制表符当成一个分隔符


修改于 180211

猜你喜欢

转载自my.oschina.net/hellopasswd/blog/1621120
今日推荐