鸟哥的Linux私房菜Shell script 课后练习第十二章(2)

单层简单的条件判断

if [ 条件判断式 ]; then 当条件判断式成立时,可以进行的命令工作内容; fi <==将 if 反过来写,就成为 fi 啦!结束 if 之意!

多重、复杂条件判断式

# 一个条件判断,分成功进行与失败进行 (else)

if [ 条件判断式 ]; then

当条件判断式成立时,可以进行的命令工作内容;

else

当条件判断式不成立时,可以进行的命令工作内容;

fi

# 多个条件判断 (if ... elif ... elif ... else) 分多种不同情况运行

if [ 条件判断式一 ]; then

当条件判断式一成立时,可以进行的命令工作内容;

elif [ 条件判断式二 ]; then

当条件判断式二成立时,可以进行的命令工作内容;

else

当条件判断式一与二均不成立时,可以进行的命令工作内容;

fi

利用 case ..... esac 判断

语法:

case  $变量名称 in   <==关键字为 case ,还有变量前有钱字号

"第一个变量内容")   <==每个变量内容建议用双引号括起来,关键字则为小括号 )

程序段

;;            <==每个类别结尾使用两个连续的分号来处理!

"第二个变量内容")

程序段

;;

*)                  <==最后一个变量内容都会用 * 来代表所有其他值

不包含第一个变量内容与第二个变量内容的其他程序运行段

exit 1

;;

esac                  <==最终的 case 结尾!『反过来写』思考一下!

function功能

function fname() {

程序段

}

回圈 (loop)

while [ condition ]  <==中括号内的状态就是判断式

do            <==do 是回圈的开始!

程序段落

done          <==done 是回圈的结束

until [ condition ]

do

程序段落

done

[root@www scripts]# vi sh13-2.sh #!/bin/bash # Program: # Repeat question until user input correct answer. # History: # 2005/08/29 VBird First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH until [ "$yn" == "yes" -o "$yn" == "YES" ] do read -p "Please input yes/YES to stop this program: " yn done echo "OK! you input the correct answer."  

[root@www scripts]# vi sh14.sh #!/bin/bash # Program: # Use loop to calculate "1+2+3+...+100" result. # 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 # 这是累计的数值,亦即是 1, 2, 3.... while [ "$i" != "100" ] do i=$(($i+1)) # 每次 i 都会添加 1 s=$(($s+$i)) # 每次都会加总一次! done echo "The result of '1+2+3+...+100' is ==> $s"  

for...do...done (固定回圈)

for var in con1 con2 con3 ...

do

程序段

done

for (( 初始值; 限制值; 运行步阶 ))

do

程序段

done

备注:

初始值:某个变量在回圈当中的起始值,直接以类似 i=1 配置好;

限制值:当变量的值在这个限制值的范围内,就继续进行回圈。例如 i<=100;

运行步阶:每作一次回圈时,变量的变化量。例如 i=i+1。

shell script的debug

[root@www ~]# sh [-nvx] scripts.sh

选项与参数:

-n  :不要运行 script,仅查询语法的问题;

-v  :再运行 sccript 前,先将 scripts 的内容输出到萤幕上;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/23789.html