初涉Shell脚本

来源:互联网 发布:短信群发网站程序源码 编辑:程序博客网 时间:2024/06/06 19:40

Shell脚本:

Shell命令可以事先写在一个文件中,使用时Shell读取文件中的命令逐条解释,这种文件被称为脚本。执行脚本的方法与执行其他程序一样,如:./setenv.sh  # setenv.sh是当前目录下的一个脚本

注意:被执行的脚本必须先赋予可执行的权限,可用chmod+x命令实现。     

    一般来说,脚本的第一行如下:#!/bin/sh

Shell将符号#后面的部分认为是注释,但这一行是有实际作用的。感叹号!后面的部分指明了要使用sh作为执行脚本的解释器。

    脚本中的每一行是一条命令,多条命令也可以写在同一行,用分号;隔开。     

    Shell支持分支结构,其中if分支结构的语法如下:if list; thenlist; [elif list; then list;] ... [else list;] fi

这里各个list都代表一条或多条命令,方括号包围的部分为可选内容。

    执行流程是:先执行if子句中的命令,如果执行成功,则执行then子句中的命令,执行完毕后流程结束,转移到fi后面去执行;否则将从后面的第一个elif或else子句开始执行,依次类推。PS(开始是正序,结束为其反序)

    每个Linux程序运行结束后都会给Shell一个返回值,这个值为0表示执行成功,其他值均表示失败。     

if及elif子句中的命令通常是用于判断的命令test。test命令的参数是一个表达式,表达式可以包含以下基本内容     

表达式可以进行逻辑操作,形成一个新的表达式,如:     

 

test命令又经常写为左方括号[,[也是一个命令功能与test相同,但要求最后一个参数是右方括号],以求形式上的完整,如:  

    Shell也支持循环结构,其中for循环的一种语法如下:for var in str1str2 str3 ... ; do list; done

这里var是循环变量

    执行过程是:var的值依次为str1,str2,str3等,没设置一次值,执行一次list中的命令。例如:     

       脚本中支持定义函数,例如:

print3 () {

         echo $1 $2 $3 # 显示第一、第二、第三个参数的值

}

其中,符号$加一个数字替换为调用函数时相应位置上的参数$*则会替换所有参数

    定义函数之后就可以调用它:

print3 embedded linuxprogram  # 将显示embeddedlinux program 
0 0