各位看官上一回咱们说到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-----------------"
终端中运行该文件,得到以下的结果:
-----------------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这个命令,用法比较多,一下子说不完,而且这个命令很重要,因此,咱们给它设了一个
专场。欲知后事如何,且听下回分解。