Linux程序设计(Linux shell编程四)

各位看官上一回咱们说到Linux shell编程中的结构,今天咱们接着说如何使用这些结构来进行shell

编程。闲话休说,言规正转。


看官们,咱们上一回说了shell的三种程序结构:顺序结构,条件判断结构和循环结构。咱们接着说说如

何使用这三种程序结构,以及使用这三种结构时的注意事项。


顺序结构:

顺序结构使用比较简单,可以依照程序中从上到下的顺序依次存放程序中的内容。这些内容可以是简单

的Linux命令,也可以其它的程序结构,比如判断结构或者循环结构。咱们举个例子来说明:

  #! /bin/bash
   echo "-----------------the starting line of shell-----------------"
 
   va=3
   vb=5
  
   echo "value of va is:$va"
   echo "value of vb is:$vb"
   
  if [ $va -gt $va ]
  then
  >-------echo "the value of va is greater than vb"
  else
  >-------echo "the value of va is less than vb"
  fi
  
  for var in a b c-
  do
  >-------echo "var=$var"
  done
  
  echo "-----------------the ending line of shell-----------------" 

新建立一个名叫t1.sh的脚本文件,把上面的内容输入到文件中,保存后,给文件加上执行权限,然后在

终端中运行该文件,得到以下的结果:

-----------------the starting line of shell-----------------

value of va is:3

value of vb is:5

the value of va is less than vb

var=a

var=b

var=c

-----------------the ending line of shell-----------------

看官们,程序文件中7,8这两行的内容依次表示输出变量va和vb的值。我们在程序的运行结果中也能看到

先输出va的值,然后输出vb的值。这就是顺序结构,写程序时按照从上到下的顺序写,输出程序结果时也

是按照从上到下的顺序显示。咱们刚才也说过,结构也可以按照顺序来存放。比如在程序中咱们先写的是

判断结构,然后是循环结构。程序的结果中也先显示判断的结果,然后再显示循环的结果。


判断结构:

判断结构的程序块可以是顺序结果,或者嵌套判断结构,甚至是循环结构也可以放到里面。所以对程序

块的内容,不做太多的说明。咱们重点说一下判断结构中的条件。条件只能是Linux命令,因为判断结构

需要依据命令的执行结果才能继续运行。这里的命令可以是普通的Linux命令,但是用的最多的还是test命

令。看官莫急,咱们通过举例子来说明。

  #! /bin/bash
   echo "-----------------the starting line of shell-----------------"

   if cd /usr/
   then
   >-------echo "the cd commond is running successfully"
   else
  >-------echo "the cd commond is not running successfully"
  fi

  if [ -d "/usr/" ]                                                                        
  then
 >-------echo "the /usr/ is a directory"
  else
 >-------echo "the /usr/ is not a directory"
  fi

  echo "-----------------the ending line of shell-----------------"
 

新建立一个名叫t2.sh的脚本文件,把上面的内容输入到文件中,保存后,给文件加上执行权限,然后在

终端中运行该文件,得到以下的结果:

-----------------the starting line of shell-----------------

the cd commond is running successfully

the /usr/ is a directory

-----------------the ending line of shell-----------------

看官们,上面程序中第4行就在条件中执行一个普通的Linux命令:cd。而且在程序运行结果中可以看到

该命令执行成功。在上面的程序第11行中就是在条件中执行test命令。“没有看到test命令呀”。这位看

官说的没错,确实没有test命令,这里使用的是test的替身:中括号[ ]。“咱们这是在拍电影呀,还有替

身”。这位看官真逗。“人家电影里的替身和真人特别像,你这个替身怎么一点也不像呢?”哈哈。这只是为

了好让大家理解,做一个比喻嘛。这替身对咱们写程序的人来说,看着确实不像test,不过对于shell程

序的解释器来说,它和test的作用完全一样。看官们,替身虽然不像真正的明星一样耍大牌,不过也还是

有一点小脾气的。使用中括号这个替身的时候,要在前面和后面分别加上空格。在第11行程序中的左括号

后面和右括号前面都有一个空格呢。


看官们关于test这个命令,用法比较多,一下子说不完,而且这个命令很重要,因此,咱们给它设了一个

专场。欲知后事如何,且听下回分解。

你可能感兴趣的:(Linux程序设计)