文档库 最新最全的文档下载
当前位置:文档库 › Linux第十二讲-Shell编程-LAMP兄弟连LINUX培训

Linux第十二讲-Shell编程-LAMP兄弟连LINUX培训

课程大纲

Shell编程语法

Shell脚本调试

Shell应用实例

一个简单的shell程序

$ cat example

#!/bin/sh

#This is to show what a example looks like.

echo "Our first example"

echo"Our first example"

echo # This inserts an empty line in output.

h"W tl i th f ll i di t"

echo "We are currently in the following directory."

/bin/pwd

echo

h

echo "This directory contains the following files"

/bin/ls

/bi/l

一个简单的shell程序

前面例子的结构:

1. #!指定执行脚本的shell

1#!

2. #注释行,执行时被忽略。

33. 命令和控制结构

创建shell程序的步骤:

第一步创建一个包含命令和控制结构的文件

第一步:创建一个包含命令和控制结构的文件。第二步:修改这个文件的权限使它可以执行。

使用chmod u+x

h d+

第三步:执行./example

(也可以使用“sh example”执行)

h l”

Shell变量

变量:是shell传递数据的一种方法,用来代表每个取值的符号名。

Shell有两类变量:临时变量和永久变量。

临时变量是shell程序内部定义的,其使用范围仅限于定

义它的程序,对其它程序不可见。包括:用户自定义变

量位置变量永久变量是环境变量其值不随脚量、位置变量。永久变量是环境变量,其值不随shell

本的执行结束而消失。

用户自定义变量

用户定义的变量由字母或下划线开头,由字母、数字或下划线序列组成,并且大小写字母意义不同。变量名长度没有限制。

同变量名长度没有限制

在使用变量值时,要在变量名前加上前缀“$”。

使

设置和使用变量

设置变量:习惯上用大写字母来命名变量。变量名只能以字母表中的字符开头,不能用数字。

以字母表中的字符开头不能用数字

变量赋值:赋值号“=”两边应没有空格。

定义时赋值,如ABC=abcdefg

将个命令的执行结果赋给变量,如:A=date

将一个命令的执行结果赋给变量如:A=`date`

将一个变量赋给另一个变量,如:A =$ B

使命令查看个变值例如

使用echo命令用于查看一个变量值。例如:echo $A

设置和使用变量

列出所有的变量:

# set

包含多个字的变量:

$NAME=Mike Ron

运行时出错,应改为:

$NAME Mike Ron或$NAME Mike Ron $NAME=“Mike Ron”$NAME=‘Mike Ron’

使

设置和使用变量

单引号和双引号的区别:

# $ABC=‘$NAME Junior’

$$i

# echo $ABC

$NAME Junior

单引号之间的内容原封不动地指定给了变量。删除变量:

#NAME

# unset NAME

简单Shell脚本

#!/bin/sh

# Shell Script filename : checkdisk.sh

h ll i fil h kdi k h

log=/var/log

/usr/bin/du -sh /home > $log/du.log

/bin/mail -s Disk Usage Ratio root < $log/du.log

/bin/mail-s"Disk Usage Ratio"root<$log/du log

使用范例:# sh checkdisk.sh

作用:检查指定目录的磁盘空间使用率,将结果记录在/var/log/du.log,发给root。

位置变量和特殊变量Shell解释执行用户的命令时,将命令行的第一个字作为命令名,而其它字作为参数。由出现在命令行上的位置确定的参数称为位置参数。例如:

ls -l file1 file2 file3

ls-l file1file2file3

$0 这个程序的文件名ls -l

$个参数值19

$n 这个程序的第n个参数值,n=1-9

特殊变量

有些变量是一开始执行Script时就会设定,且不能被修改但我们不叫它只读的系统变量而叫能被修改,但我们不叫它只读的系统变量,而叫

它特殊变量。这些变量当一执行程序时就有了,

用户无法将般的系统变量设定成只读的。以下用户无法将一般的系统变量设定成只读的。以下是一些等殊变量:

$* 这个程序的所有参数

$$# 这个程序的参数个数

$$ 这个程序的PID

$!执行上个后台指令的PID

$! 执行上一个后台指令的PID

$? 执行上一个指令的返回值

特殊变量#!/usr/bin/sh

#test special variable

# test special variable

# Usage: sh special.var file01 file02 echo $# is: $#

echo'$#is:'$#

echo '$* is:' $*

echo $? is: $?

echo'$?is:'$?

echo '$$ is:' $$

echo $0 is: $0

echo'$0is:'$0

Shell命令read命令:从键盘读入数据,赋给变量如:read var1 var2

read 命令read的例子:

#!/usr/bin/sh

read first second third

echo"the first parameter is$first" echo"the second parameter is$second”h"th d t i$d echo"the third parameter is$third"

expr p命令Shell变量的算术运算:

expr命令:对整数型变量进行算术运算例如:expr 3 + 5

expr $var1 -5

expr$var1

expr $var1 / $var2

p

expr $var3 \* 10

expr p命令#!/bin/sh

a=10

b=20

c=30

value1=`expr $a + $b + $c`

`$$$`

echo "The value of value1 is $value1" value2expr $c / $b

value2=`expr$c/$b`

echo "The value of value2 is $value2" value3=`expr $c \* $b`

echo "The value of value3 is $value3" h"Th l f l3i$l3" value4=`expr $a + $c / $b`

$

echo "The value of value4 is $value4"

复杂的p命令

expr

复杂的运算:

expr `expr 5+7`/$var4

将运算结果赋予变量:

var4= expr $var1 / $var2

var4=`expr$var1/$var2`

变量测试语句

变量测试语句:用于测试变量是否相等、是否为变量试句用试变量相等为空、文件类型等。

空文件类型等

格式:

test 测试条件

测试范围:整数、字符串、文件

变量测试语句

字符串测试:

test str1=str2 测试字符串是否相等

test str1!=str2 测试字符串是否不相等t t t1!t2

test str1 测试字符串是否不为空

test -n str1 测试字符串是否不为空

test -z str1 测试字符串是否为空

相关文档