shell语法使用


  这两天初次接触shell编程,所谓shell编程其实就是用一定的语法将各种基本的命令组合起来,让shell程序去解释执行。如果对windows的dos有了解,可以这样理解,其实shell脚本文件和.bat批处理文件差不多,不过linux下的shell比起windows的dos强大很多。

  shell有很多种,如bash、sh 、tcsh、 ksh等,linux系统里面默认使用的是bash。

  下面看一下学习shell的第一个程序:

  输入命令vi my_01.sh,创建一个my_01.sh文件并用vi编辑器打开。编辑内容如下:

 #!/bin/  
  

  这里第一行是指让bash这个shell去执行这个shell程序。echo是用来输出的,第二行和第三行分别输出两句话。

执行这个shell程序可以用如下几种方法:

  1  ./my_01.sh

  2  . my_01.sh

  3  bash my_01.sh

  下面是第二个shell程序:

 #!/bin/ #my_02.
 read -p   

  这里第三行read命令是指等待用户输入,-p后面是指提示,它还有一个参数-t是设置等待时间的。这个程序运行结果如下:

[liuling@bogon test]$ ./my_02.sh
please input your name:liuling
liuling,welcome!

 

 下面看几个例子:

 #!/bin/ #my_03.
 
 read -p  read -p  
  test $name = "liuling" 
  [ $name =  -a $ =  
      
 
      
 
 #!/bin/ #my_04.
 
 read -p  
  [ $score -gt  
      
  [ $score -gt  -a $score -le  
      
 
      
 
 #!/bin/ #my_05.
 
 read -p  #如果使用(())的话,只能用< > >= <=
  (( $score >  
      
  [[ $score -gt  && $score -le  
      
 
      
 

  测试用户输入的文件名是目录还是文件:

 #!/bin/ #my_06.
 
 read -p   [ - 
      
 
      [ -     
          
      [ -     
          
     
          
     
 

 

  这三个例子都是关于if条件判断的用法。条件有这么几种写法:[ 条件 ]、test 条件、[[ 条件 ]]、(( 条件 )),用的最多的是第一种。常用判断符号如下

 

  

 var *


下面是几个case用法的例子

  1.模拟菜单的选择

 #!/bin/ #my_07.
 
  
  
  
  
 
 read -p   $num 
                             -               -           *           
  

 

三、循环语句的使用

1、for循环

 变量名 


下面是for循环使用的小例子:

 #!/bin/ #my_08.
 
  a  `    
      
  
  ((i=;i<=;i++ 
      

  

  下面是一个统计文件数目的小程序:

 #!/bin/ #my_09.
 
 i=
  name1  ` / 
    # i=` $i +     # let i++
    # i=$[$i +     # i=$(($i +     ((i++ 
 
  

  

下面是一个录入客户资料的shell脚本:

 #!/bin/ #my_10.
 
  
 
          
  
          $choice 
                           
                           
                           ${name1}${age1} >>             
 


 

四、函数的应用

下面是一个小例子程序:

 #!/bin/ #fun.
       $(($+$  add  
 add  

 

  

相关内容