@@@ 小tutu ***快快乐乐每一天****Everyday is a new day****

小tutu

轻轻地我来了。。。

导航

快速入门shell脚本编写(三)

Posted on 2017-03-25 12:11  小tutu  阅读(106)  评论(0编辑  收藏  举报

从这一节主要学习 控制语句、循环语句

注释、shell多行注释

shell单行注释很简单,只需在每行行首增加#,但是他其实是没有提供专门的多行注释的方法的,所以我们采用投巧的方式来多行注释,用EOF分界符来多行注释,如下:

[plain] view plain copy 

  1. 1 #! /bin/sh  
  2. 2  
  3. 3 file="/Desktop/file.test"  
  4. 4  
  5. 5 <<EOF  
  6. 6 if [ -r $file ]  
  7. 7 then  
  8. 8         echo "1"  
  9. 9 fi  
  10. 10  
  11. 11 if [ -w $file ]  
  12. 12 then  
  13. 13         echo "3"  
  14. 14 else  
  15. 15         echo "4"  
  16. 16 fi  
  17. 17 EOF  
  18. 18  
  19. 19 if [ -f $file ]  
  20. 20 then  
  21. 21         echo "file is an ordinary file"  
  22. 22 fi  

上面代码中5 - 17行就被注释掉了。

if判断语句

if判断语句应该已经很熟悉了,前面很多例子都使用了if判断语句,这里直接上俩个程序,并提供运行结果。

[plain] view plain copy 

  1. 1 #! /bin/sh  
  2. 2  
  3. 3 var="test"  
  4. 4  
  5. 5 if [ $var == test1 ]  
  6. 6 then  
  7. 7         echo "1"  
  8. 8 else if [ $var == test ]  
  9. 9 then  
  10. 10         echo "2"  
  11. 11 fi  
  12. 12 fi  

运行结果:2

上面使用的结构是

if ...

then ...

else if ...

then ...

fi

fi

另外一种结构是:

[plain] view plain copy 

  1. 1 #! /bin/sh  
  2. 2  
  3. 3 var="test"  
  4. 4  
  5. 5 if [ $var == test1 ]  
  6. 6 then  
  7. 7         echo "1"  
  8. 8 elif [ $var == test ]  
  9. 9 then  
  10. 10         echo "2"  
  11. 11 fi  

运行结果也是2,这个结构和上面的类似,只是中间的else if ... fi 被换为elif了。

循环语句

for循环

先看一个例子:

[plain] view plain copy 

  1. 1 #! /bin/sh  
  2. 2  
  3. 3 for (( i=0; i<10; i++))  
  4. 4 do echo $i  
  5. 5 done  

乍看起来还是很熟悉的,但是实际上需要注意如下几点:

1,for循环要用双括号 括起来,即: ((...;...;...;))

2,do 和 done是必不可少的

输出结果就是从0到9所有数字

while循环

[plain] view plain copy 

  1. 1 #! /bin/sh  
  2. 2  
  3. 3 i=0  
  4. 4 while((i<10))  
  5. 5 do  
  6. 6         echo $i  
  7. 7         let i++  
  8. 8 done  

该循环的作用与上面的for循环结果输出一样。

while循环的结构是:

while ...

do ...

done
until循环

until循环使用很少,结构类似c/c++ Javado while循环,但实际条件是终止条件 而非c/c++里面的执行条件。这里略做介绍,个人建议浏览即可,也可跳过。

结构:

until ...

do ...

done

[plain] view plain copy 

  1. 1 #! /bin/sh  
  2. 2  
  3. 3 i=0  
  4. 4 until((i>=10))  
  5. 5 do  
  6. 6         echo $i  
  7. 7         let i++  
  8. 8 done  

上面循环执行结果与之前的相同,请注意这里until里面的条件是退出条件。

数组
for in 和 case 语句前,先了解一下shell数组

表示方式:

方式一:arraynum=(1 2 3 4 5)

方式二:  

arraynum[0]=0

arraynum[1]=1

arraynum[2]=2

获取数组的长度的方式:${#arraynum[@]} (arraynum[@]实际上arraynum的列表,计数符号我们在前面讲过,所以这个表达式不难理解)

for in 语句

接着我们来看如何遍历输出数组

[plain] view plain copy 

  1. 1 #! /bin/sh  
  2. 2  
  3. 3 arraynum[0]=a  
  4. 4 arraynum[1]=b  
  5. 5 arraynum[2]=c  
  6. 6  
  7. 7 for var in ${arraynum[@]}  
  8. 8 do  
  9. 9         echo ${var}  
  10. 10 done  
  11. 11  
  12. 12 echo ${#arraynum[@]}  
  13. 13 echo ${arraynum[@]}  

 

上面就使用了for in语句遍历输出数组内容,最后俩句是为了验证上面我所说的,${#arraynum[@]}是计算数组的长度,${arraynum[@]}是数组列表。

我们来看看输出结果:

 

for in语句的结构如下:

for 变量名 in 列表
do ...
done

该表达式语句比较常用,我们需要熟记他的形式和用法。

oNormm~�i�

@@@小tutu@@@生活要不断努力!!!不断学习!!!