仔细比对一下这两个东西有啥不同喔! ^_^再来,如果我想要计算 1+2+3+....+100 这个数据呢? 利用循环啊~他是这样的:
[root@linux scripts]# vi sh13.sh #!/bin/bash # Program: # Try to use loop to calculate the result "1+2+3...+100" # History: # 2005/08/29 VBird First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH s=0 i=0 while [ "$i" != "100" ] do i=$(($i+1)) s=$(($s+$i)) done echo "The result of '1+2+3+...+100' is ==>; $s" |
嘿嘿!当您执行了『 sh sh13.sh 』之后,就可以得到 5050 这个数据才对啊!这样了呼~ 那么让您自行做一下,如果想要让使用者自行输入一个数字,让程序由 1+2+... 直到您输入的数字为止, 该如何撰写呢?应该很简单吧?!答案可以参考一下习题练习里面的一题喔!
-----------------------------------------------------------------------
for...do....done
相对于 while, until 的循环方式是必须要『符合某个条件』的状态, for 这种语法,则是『 已经知道要进行几次循环』的状态!他的语法是:
for (( 初始值; 限制值; 执行步阶 )) do 程序段 done |
这种语法适合于数值方式的运算当中,在 for 后面的括号内的三串内容意义为:
- 初始值:某个变量在循环当中的起始值,直接以类似 i=1 设定好;
- 限制值:当变量的值在这个限制值的范围内,就继续进行循环。例如 i<=100;
- 执行步阶:每作一次循环时,变量的变化量。例如 i=i+1。
值得注意的是,在『执行步阶』的设定上,如果每次增加 1 ,则可以使用类似『i++』的方式,亦即是 i 每次循环都会增加一的意思。好,我们以这种方式来进行 1 累加到 100 的循环吧!
[root@linux scripts]# vi sh14.sh #!/bin/bash # Program: # Try do calculate 1+2+....+100 # History: # 2005/08/29 VBird First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH s=0 for (( i=1; i<=100; i=i+1 )) do s=$(($s+$i)) done echo "The result of '1+2+3+...+100' is ==>; $s" |
一样也是很简单吧!利用这个 for 则可以直接限制循环要进行几次呢!这么好用的东西难道只能在数值方面动作?当然不是啦~我们还可以利用底下的方式来进行非数字方面的循环运作喔!
for $var in con1 con2 con3 ...
do
程序段
done
以上面的例子来说,这个 $var 的变量内容在循环工作时:
第一次循环时, $var 的内容为 con1 ;
第二次循环时, $var 的内容为 con2 ;
第三次循环时, $var 的内容为 con3 ;
....