shell编程相关内容

来源:互联网 发布:java线程池状态 编辑:程序博客网 时间:2024/06/05 16:59

1、shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式的解释和执行命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支

2、查看shell类型的命令:#echo $SHELL($SHELL是一个环境变量,它记录用户所使用的shell类型)

可用#shell-name来转换到别的shell,这里的shell-name命令为用户又启动了一个shell

3、使用不同的shell的原因因为它们有不同的特点:

①ash。ash shell是Linux中占用系统资源最少的一个小shell,它只包含24个内部命令

②bash。八十、是Linux系统命令使用的shell,内部命令一共40个,Linux使用其作为默认的shell因为其有以下特色:

1)可以使用类似DOS下面的doskey的功能,用方向键查阅和快速输入并修改命令

2)自动通过查找匹配的方式给出以某字符串开头的命令

3)包含了自身的帮助功能,只要在提示符键入help就可以得到相关的帮助

③ksh。ksh内部有42条命令

④csh。csh是Linux比较大的内核,共有52个内部命令

⑤zch。zch是Linux最大的shell之一,共有84个内部命令


4、shell的基本语法

(1)输入输出重定向

Linux中每一个进程都有三个特殊的文件描述指针:标准输入、标准输出、标准错误输出。这三个特殊的文件描述指针使进程在一般情况下接收标准输入终端的输入,同时由标准终端来显示输出,Linux同时也向使用者提供可以使用普通的文件或管道来取代这些标准输入输出设备

command>file:将命令的输出结果重定向到一个文件

(2)管道pipe

①将某一程序的输出送到另一个程序的输入命令:command1|command2[|   command3...]

②连同标准错误输出一起送入管道:command1| &command2[|  &command3...]

(3)前台和后台

在shell下面,一个新产生的进程可以通过用命令后面的符号“:”和“&”来分别以前台和后台的方式来执行,语法为:command(产生一个前台的进程,下一个命令须等该命令运行结束后才能输入)command&(产生一个后台的进程,此进程在后台运行的同时,可以输入其他的命令)


5、shell程序的变量和参数

①HOME:用于保存注册目录的完全路径名

②PATH:用于保存用冒号分隔得目录名

③TERM:终端的类型

④UID:当前用户的标识符,取值是由数字构成的字符串

⑤PWD:当前目录的绝对路径名,该变量的取值随cd命令的使用而变化

⑥PS1:主提示符

⑦PS2


6、预定义变量

$#:位置参数的数量

$*:所有位置参数的内容

$?:命令执行后返回的状态

$$:当前进程的进程号

$!:后台运行的最后一个进程号

$0:当前执行的进程名


7、参数置换的变量

(1)变量=${参数-word}:如果设置了参数,则用参数的值置换变量的值,否则用word置换。即这种变量的值等于某一个参数的值,如果该参数没有设置,则变量就等于word的值

(2)变量=${参数=word}:如果设置了参数,则用参数的值置换变量的值,否则把变量设置成word,然后用word替换参数的值。

(3)变量=${参数?word}:如果设置了参数,则用参数的值置换变量的值,否则就显示word并从shell中退出;如果省略了word,则显示标准信息。

(4)变量=${参数+word}:如果设置了参数,则用word置换变量,否则不进行置换。

0 0
原创粉丝点击