流程控制语句
if/else命令
1.单分支if条件语句

​ if [ 条件判断式 ]

​ then

​ 程序

​ fi

​ 或者

​ if [ 条件判断式 ];then

​ 程序

​ fi

​ eg:#!/bin/sh

​ if [ -x /etc/rc.d/init.d/httpd ]

​ then

​ /etc/rc.d/init.d/httpd restart

​ fi

​ 单分支条件语句需要注意的点:

​ if语句使用fi结尾,和一般语言使用大括号结尾不同

​ [ 条件判断式 ] 就是使用test命令判断,所以中括号和条件判断式之间必须有空格

​ then 后面跟符号条件之后执行的程序,可以放在[]之后,用";“分割,也可以换行写入,就不需要”;"了

2.多分支if条件语句

​ if [ 条件判断式1 ]

​ then

​ 当条件判断式1成立时,执行程序1

​ elif [ 条件判断式2 ]

​ then

​ 当条件判断式2成立时,执行程序2

​ …省略更多条件

​ else

​ 当所有的条件都不成立时,最后执行此程序

​ fi

​ 示例:

​ read -p “please input your name :” NMAE

​ eg:

​ #!/bin/bash

​ read -p “pelease input your name :” NAME

​ #echo $NAME

​ if ["$NMAE" == root ]

​ then

​ echo “hello ${NAME},welcome!”

​ elif [ $NAME == tom ]

​ then

​ ehco “hello ${NAME},welcome!”

​ else

​ echo “SB,get out here !”

​ fi

case命令

​ case命令是一个多分支的if/else命令,case变量的值用来匹配value1,value2,value3等等。匹配到后则执行跟在后面的命令直到遇到双分号为止 (;????,case命令以esac作为终止符。

​ 格式

​ CMD=$1

​ case $CMD in

​ start)

​ echo “starting”

​ ;;

​ Stop)

​ echo “stoping”

​ ;;

​ *)

​ echo “Usage:{start|stop}”

​ esac

for循环

​ for循环命令是用来在一个列表头目中执行有限次数的命令。比如,你可能会在一个姓名列表或文件列表中循环执行同个命令。for命令后紧跟一个自定义变量、一个关键字in和一个字符串列表(可以是变量)。第一次执行for循环时,字符串列表中的第一个字符串会赋值给自定义变量,然后执行循环命令,直到遇到done命令,第二次执行for循环时,会右推字符串列表中的第二个字符串给自定义变量,依次类推,直到字符串列表遍历完成。

​ 第一种:

​ for B in 1 2 3

​ do

​ echo $N

​ done

​ 或

​ for N in 1 2 3 ; do echo $N;done

​ 或

​ for N in {1…3}; do echo $N;done

​ 第二种

​ for(( i=0;i <= 5 ; i++ ))

​ do

​ echo "welcome $i times "

​ done

​ 或

​ for(( i = 0 ; i <= 5 ; i++ )); do echo “welcome $i times”; done

while循环

​ while命令根据紧跟其后的命令来判断是否执行while循环,当command执行后的返回值为0时,则执行while循环语句块,直到遇到done语句,然后再返回到while命令,判断command的返回值,当得大返回值为非0,则终止while循环。

​ 第一种

​ while expression

​ do

​ command

​ …

​ done

​ 练习:求1-10各个数的平方和

shell脚本介绍与基本使用(四)

​ 第二种

shell脚本介绍与基本使用(四)

自定义函数

​ 函数代表着一个或一组命令的集合,表示一个功能模块,常用于模块化编程。

​ 以下是关于函数的一些重要说明:

​ 在shell中,函数必须先定义,再调用

​ 使用return value来获取函数的返回值

​ 函数在当前shell中执行,可以使用脚本中的变量。

​ 函数的格式如下:

​ 函数名()

​ {

​ 命令1…

​ 命令2…

​ return 返回值变量

​ }

​ [ function ] funname [()]

​ {

​ action;

​ [return int;]

​ }

​ function start() / function start / start()

​ eg:

shell脚本介绍与基本使用(四)

​ 注意:

​ 如果函数名后面没有(),在函数名和{ 之间,必须要有空格以示区分。函数返回值,只能通过$? 系统变量获得,可以显示加:return返回值,如果不加,将最后一条命令运行结果,作为返回值,return后跟数值n(0-255)

脚本测试

​ sh -x script

​ 这将执行该脚本并显示所有变量的值

​ 在shell脚本里添加

​ set -x 对部分脚本调试

​ sh -n script

​ 不执行脚本知识检查语法的模式,将返回所有错误语法

相关文章: