快乐的工作,快乐的生活...

shell基础知识

上一篇 / 下一篇  2008-12-02 21:33:50 / 个人分类:shell语言

一、     变量

Shell的变量不分类型,或者说只有字符串型变量,所以要使用数值运算则必须靠外部命令达到目的。而其变量种类有以下几种: 

1、用户自定义变量

 

Shell中,这是最常用的变量,在程序中变量不需要事先说明,没有类型之分,也没有全程、局部的区别。变量可以随时随地定义,其名称是以字母开头的不包括空白字元的任何字符串,长度不限。其使用范围只限于程序运行期间,程序执行完毕,该变量即不复存在。

 

定义变量的格式: 变量名=字符串 (例:name=Tom

其中,字符串可以是空串,表示变量被赋予空值。

引用一个变量时,在变量前加一$号即可。

Name=Tom (变量name被赋予字符串值Tom)

echo $name (显示变量name的值)

执行结果为:Tom

 

2、系统变量(环境变量)

 

和自定义变量相似,系统变量只不过是在用户注册到系统的时候,由

系统自动赋值的,并且它的值会自动传递到各层Shell并能够被其所执行的

程序所调用。除非在程序中对环境变量进行修改,否则其值不会随Shell

程序的运行而改变,要将一个用户自定义变量设定为环境变量,只需用

export命令声名即可,例如:

 

    name=Tom

    export name

 

    以下是用户一进入系统之后就已设定好的环境变量:

 

    $HOME:用户自己的主目录

    $PATH:执行命令时所搜寻的目录

    $TZ :时区

    $PS1:命令行上的提示符

    $PS2:当命令尚未书完时,Shell要求继续输入时的提示符

 

3、特殊变量

 

有些变量一开始执行Shell程序时就被自动设定的,一般不能进行修改,以下是一些特殊变量:

 

$0   Shell程序的执行名

$n   Shell程序(或过程)的第n个位置参数值,n=1..9

$*   Shell程序所有位置参数组成的字符串

$#   Shell程序的位置参数的个数

$$   程序执行后的进程号

$!   最后一个后台指令(程序)执行后的进程号

$?   命令执行后的返回值,返回0表示成功,返回1表示失败

 

其中,$n又叫位置变量,它是调用(运行)一个Shell程序时,跟在程序名后面的各个参数,最多可以有10个,例如:

#sh myprogram 15 20

则在程序中$1=15,$2=20

 

当你执行Shell时,如果参数的数目超过9个时,可以使用Shift命令将参数向前移动一格,如此便可以使用超过9个的参数。

 

 输入输出语句

 

1、read语句

read语句用于从键盘接收一个或多个值并把它们赋予相应的变量。

用法:read变量名1 [变量名2,变量名3...]

例如:read a b

echo $a

echo $b

运行并输入aaa bbb回车后将显示:

     aaa

     bbb

需要注意的是,如一次需输入多个值,每个值之间要以空格来分隔,全

输入后再打回车确认。

 如输入的字段值个数少于语句中变量的个数时,多出的变量将赋予空值。

 如输入的字段值个数多于语句的变量个数时,多出的参数值被丢弃。

 通常使用的方式是一次读入一个数据 ,即read后只跟一个变量。

 

2、echo语句

 

echo语句用于向标准输出设备输出字符串或变量的值。

用法:echo字符串   echo 变量名1[变量名2,变量名3...]

例如:echo I am a student

echo语句中还可以用一些控制字符对格式进行控制,常用如下:

 

\b   空一格,是显示行首为一个空格

\c   显示后不换行,下次显示时紧跟其后显示

\f   先清屏后在屏幕顶端显示

\n   换行,显示后多增加一空行  

\r   回车

\t   显示时增加一个制表符

\v   垂直制表符

\\   显示一个反斜杠

 

赋值语句

 

1、字符串:是最常用的赋值方法,等号后面跟一个后多个字符串。

如:name=John

name=”John Tom”

 

2、read语句:把键盘输入的值赋予变量。

如:read key (从键盘接收一个值并将其赋予变量key)

   

3、用命令的结果赋值:通过反单引号把某个命令的输出赋予变量。

如:name=`pwd`

 

4、用位置变量赋值:把命令行上的某一参数的值赋予变量。

如:name=$2 (把第二个位置参数的值赋予变量name)

 

执行命令

 Shell中执行一个命令有五种方法,具体如下叙述:

1、直接执行命令

在程序中通过调用命令名直接运行系统命令,如:lf这种方式和在命令

中直接下命令的效果一样,也是最常用的执行方式。

 

2、使用sh命令

在程序中通过sh command的形式运行其它Shell程序。这种方式除了这

个程序可不具有执行权限外和直接执行命令的形式一样。

 

3、使用”.”命令

在程序中以.command的形式运行命令(程序)。这时和使用sh命令相似,

只不过它不像sh一样会产生新的进程,相反,它会在原有的进程下完成。

 

4、使用exec命令

在程序中以exec command的形式运行命令(程序)。此时这个Shell

序将会被所执行的命令所取代。当这个命令执行完毕之后,这个Shell程序

也会随之结束。


TAG: shell语言

 

评分:0

我来说两句

日历

« 2024-04-21  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 6200
  • 日志数: 10
  • 建立时间: 2007-07-11
  • 更新时间: 2008-12-09

RSS订阅

Open Toolbar