shell编程

shell编程

一、shell脚本

把分散执行的若干shell命令配合shell环境支持的流程控制指令而构成的一个具备可执行权限的文件。

A)shell命令

B)shell解释器

C)可执行器

二、shell解释器

一种特定的具备解释执行shell的命令的特殊程序

三、shell程序

a)最简单的shell脚本程序

#!/bin/bash

#这是注释,其解释作用,不影响脚本的执行效果

shell命令

注意:

1.shell脚本中,需要制定解释该shell脚本的shell解释器;

2.shell脚本文件的扩展名使用.sh

3.shell脚本需要解释权限     chmod  a+x  hahaha.sh

a+x 是给所有人加上可执行权限,包括所有者,所属组,和其他人
o+x 只是给其他人加上可执行权限

b)shell变量:用来存放一定数据的名字代表

Shell变量名:就是一个代号(字符串),仅仅只表示名字本身

Shell变量的值:使用($变量名)来表示变量存储的具体数据

使用实例:

$SELECT=yes

echo $SELECT

 

$# 是传给脚本的参数个数

$0 是脚本本身的名字

$1 是传递给该shell脚本的第一个参数

$2 是传递给该shell脚本的第二个参数

$@ 是传给脚本的所有参数的列表

$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个

$$ 是脚本运行的当前进程ID号

$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

 

c)条件测试

1.判断与数字之间的关系

  1.   -eq(等于)  -ne(不等于)

test  $NUM  -eq  10

  2.   -ge(大于等于) -gt(大于)

test  $NUM  -ge  10

  3.   -le(小于等于)  -lt(小于)

test  $NUM  -lt  10

 

echo -n 表示尾部换行

 

2.判断与字符串之间的关系

  1.  -n  -z

Test  -z  $STRING

  2.  =  !=

test  $STRING  =  yes

3.判断与文件之间的关系

  1.  -d  path:判断该文件是否为目录

test  -d  ~/linux/

  1. -e  path:判断文件是否存在

test  -e  ~/hello.c

  1. -f  path:判断该文件是否是普通文件

test  -f  ~/test

注意:test指令测试成功返回0,测试失败返回非0

d) 条件分支语句

  1. 条件执行

if   条件表达式

then

执行语句

fi

  1. 两种情况执行

if   条件表达式

then

执行语句1

else

执行语句2

fi

  1. 分多钟情况执行

if  条件表达式1

then

执行语句1

elif  条件表达2

then

执行语句2

else

执行语句n

fi

e) 循环语句

  1. for
  2. While

练习编写一个shell脚本,位置参数上传入三个值,分别是区间的下限m上限n步长s脚本内求该该区间[m,n]内,该步长s变化下的所有整数的和。

参考代码如下:

 

-o是逻辑或,一边为真,结果为真,否则为假

 

 

 

 

分两种情况执行

If 条件表达式

then

执行语句1

else

执行语句2

fi

 

test被[ ]代替时,[ ]之间的表达式一定要用空格隔开

 

判断输入的word是否相同

 

1.分多种情况执行

d)循环语句

 

 

f)函数

1.函数存在的意义:将需要重复使用的命令块封装起来,起一个唯一的名字,用来作为一个命令整体可重复使用

2.函数的定义  (在调用之前)

函数名()

{

    重用命令块

}

3.函数的调用

直接使用函数名调用该函数

4.函数的传参

 

5.函数的返回值

在函数内部使用return返回一个值,在函数调用结束之后,使用$?获取返回值

add test()

{

  return 100

}

 

add test()

 

posted @ 2016-10-18 10:21  Dummer~浅时光  阅读(175)  评论(0编辑  收藏  举报