快捷搜索:   nginx

Shell高级编程

Shell高级编程
1、if语句
 if语句的语法格式:
if condition1
then
       command-list
elif condition2
then
       command-list
else
       command-list
fi
if语句以给定的命令command的出口状态作为判断条件,如果出口状态为0则执行紧随着then自己之后的命令。fi表示if语句的结束。
 
2、case控制结构
 case命令能够提供多路分支转移控制功能。用作测试调教的变量可以具有多个值,不同的数值可以引起不同的程序走向。 case语句的语法格式:
case "$variable" in
pattern1)
              command-list;;
pattern2)
              command-list;;
.......
patternN)
              command-list;;
esac
Shell使用给定的变量的值与每个模式(pattern)进行比较。每个模式须以右半括号)结束。当shell发现匹配一个模式时,则执行紧随模式后面的所有命令,知道遇到爽分号(;;),执行结束,shell跳刀紧随esac语句之后的第一个语句开始继续执行。
 
模式(pattern)可以使用元字符(*),也可以使用运算符|表示模式的逻辑或关系。
 
3、for循环
 根据for命令行中的每个参数,重复执行一组命令或代码块。for语句的语法格式:
for var in word-list
do
      command-list
done
word-list是一系列的参数或称参数表,中间用空格分开。对于参数表中的每一个参数值,重复执行一次do与done之间的命令。在每次循环过程中,shell从给定的参数表中一次取出一个参数值,并把参数值赋值到给定的变量var中,然后执行for循环体中的代码块。
 
例:给出当前目录中检索文件的大小超过1MB的文件。
#!/usr/bin/ksh
dir=$(pwd)
cd ${dir}
for in in $(find . -size +2048 -print)
do
if [-f "${i}"]
then
ls -s "${i}"
fi
done
exit
 
4、while循环
 while循环结构是在循环体的前面执行条件测试。只要控制条件的测试结果为真,就继续执行循环体中的命令。while的语法结构:
while [condition-is-true]
do
command-list
done
例:求1~100之间的所有整数和。
Number=1
Sum=0
Max=100
while ["$Number" -le "$Max"]
do
Sum='expr $Sum+$Number'
Number='expr $Number+1'
done
echo $Sum
 
在while循环结构中,控制条件可以由多个语句或命令组成。实际上只有最后一个条件才能决定循环体何时终止执行。
 
until循环
until循环与while循环结构不同的是:如果条件为假则循环继续执行。语法格式:
until [condition-is-true]
do
command-list
done
 
5、select循环
 select循环结构主要用于建立选择菜单。 select菜单的最大的特点是,编程人员只需要提供菜单的选项内容,而无须组织菜单的表现形式。这一切均由select语句负责实现。select语法格式:
select variable [in list]
do
comand-list
break
done
使用break语句退出select循环。
 
默认情况下,select语句使用PS3环境变量的值作为命令提示符(#?),我们可以在使用select语句之前给PS3环境变量一个新的值。
 

6、break和continue命令
 break命令用于终止循环,而continue命令用于引起控制机制越过本次循环中余下的所有命令,直接转移到下一次循环迭代。
 
break命令的语法格式如:break [n]
break命令后面可以加一个选用的数字参数。一个简单的break命令只是终止最内层的循环。但break n命令则可以跳出n层循环,控制将转到n个关键字done后面的命令开始继续执行。
 
类似于break,continue命令也可带一个选用的数字参数。 如果continue命令后面指定一个数字n,则控制将转到外部嵌套第n层循环体中的起始位置开始继续执行循环体。
 
7、sleep命令
 sleep命令可以使shell暂时处于休眠状态,以秒为单位。sleep命令的语法格式: sleep [n]
 
8、shift命令
 shift命令用于修改位置参数的值。按照指定的数量,从右到左移走左面的位置参数。同时位置参数的总数也相应的减少。${0}是脚本文件的名字,在左移的过程中不受影响。 shift语句的语法格式:
shift [n]
 
9、getopts命令
 getopts命令用于获取以减号"-"或加号"+"为起始字符的命令行选项、选项的参数和命令参数。其语法格式:
setopts optstring name [arg...]
 
getopts命令是对getopt命令的更新和替代品。在shell脚本中,最好能够使用getopts命令。使用getopts命令,用户能够以任何顺序输入命令选项。getopts命令允许组合使用不带参数的各种选项,也可以分别使用各种选项。
 
getopts语句使用一个合法的选项字符串确定shell脚本能够接受的选项。如:getopts ior name表示脚本可以接受的合法选项为"-i"、"-o"、"-r"。每次调用getopts语句时,命令行中下一个合法选项就会存入到给定的变量name中。
 

顶(1)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论