LINUX中的SHELL编程浅析
——浅析shell编程
内 容 提 要
Shell脚本最常用于系统管理工作,或是用于结合现有的程序以完成小型的特定的工作。
Shell程序有很多类似C语言和其他程序设计语言的特征,但是又没有程序语言那样复杂。它结合了延展性与效率,持续保有独具的特,并不断被改良,是那些类似与GUI等的屏幕图形界面最有力的支柱。Shell程序是指放在一个文件中的一系列Linux命令和实用程序。在执行的时候,通过Linux操作系统一个接一个地解释和执行每条命令。此后,只要直接执行该程序便能完成工作。如果你的程序写的很有用,其他人可以利用该程序当做一个黑盒来使用。本论文将对shell做一个比较全面的解析,使大家能够对之更加熟悉。
本论文结构:
一:初识shell。
1.shell的本质
2.什么是Shell?
3.shell标准有哪些?
4.shell程序大体内容
5.运行shell的脚本格式
6.编写、修改权限、执行过程
二:shell编程浅释
1.shell函数浅介。
2.函数的运用,二进制转化为十进制例题。
三:创建菜单式的综合例子介绍。
四:总结
关键词:shell Linux 解析
LINUX中的SHELL编程浅析
——浅析shell编程
一、初识shell。 返回
在写这篇论文之前,我们需要弄清楚5个基本的概念:
1)什么是Shell?
官方的解释称:Shell是一种具备特殊功能的程序, 它是介于使用者和 UNIX/Linux 操作系统之核心程序(kernel)间的一个接口,是核心程序(kernel)之外的指令解析器,是一个程序,同时是一种命令语言和程序设计语言。也就是说, 为了对用户屏蔽内核的复杂性,也为了保护内核以免用户误操作造成损害,在内核的周围建了一个外壳(shell)。用户向shell提出请求,shell解释并将请求传给内核。
2)shell的本质
本质上,shell 脚本是命令行命令简单的组合到一个文件里面。Shell基本上是一个命令解释器,类似于DOS下的command。它接收用户命令,然后调用相应的应用程序。
输入echo $SHELL可以知道当前运行在那个Shell标准中。
3)shell标准有哪些?
使用较广的shell有标准的Bourne shell (sh)、Korn Shell(ksh)、C shell (csh)、Bourne Again Shell(bash)等。
4)shell程序大体内容
shell自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。任何在提示符中能键入的命令都能放到一个可执行的shell程序中。
5)运行shell的脚本格式
运行一个SHELL脚本必须为(./+名字.sh)。
5个基本概念明白之后,我们首先来编写第一个Shell程序,从中学习Shell程序的编写、修改权限、执行过程。
利用vi编辑器编辑脚本,将脚本命名为date.sh
(Shell脚本不是复杂的程序,它是按行解释的。)
编辑一个内容如下的源程序,保存文件名为date,可将其存放在目录/bin下。
[root@localhost bin]#vi date
#! /bin/sh
echo “Mr.$USER,Today is:”
echo &date “+%B%d%A”
echo “Wish you a lucky day !”
注意:
#! /bin/sh通知采用Bash解释。如果在echo语句中执行Shell命令date,则需要在date命令前加符号“&”,其中%B%d%A为输入格式控制符。
编辑完该文件之后不能立即执行该文件,需给文件设置可执行程序权限。使用如下命令。
[root@localhost bin]#chmod +x date
执行Shell程序有下面三种方法:
方法一:
[root@localhost bin]#./ date
Mr.root,Today is:
二月 06 星期二
Wish you a lucky day !
方法二:
另一种执行date的方法就是把它作为一个参数传递给Shell命令:
[root@localhost bin]# Bash date
Mr.root,Today is:
二月 06 星期二
Wish you a lucky day !
方法三:
为了在任何目录都可以编译和执行Shell所编写的程序,即把/bin的这个目录添加到整个环境变量中。
具体操作如下:
[root@localhost root]#export PATH=/bin:$PATH
[root@localhost bin]# date
Mr.root,Today is:
二月 06 星期二
Wish you a lucky day !
运行脚本通常在linux工具集上(终端)。类似windows下是dos命令提示符。
以上这些概念可以说是使我们对shell有了一个初步的了解,用过linux的开发人员应该很熟悉,应为linux可以这么说,无论干什么都需要大大小小的命令来支持,那么我们平常的Windows XP用户其实可以参照DOS命令提示符来理解。在DOS命令提示符中输入的命令就可以对你本机做出一些设置。但是编程是要使用大量的命令,关键字,以及语句,所以需要大家自己不断的去熟悉那些命令。接下来我们通过一些例子将shell编程进一步阐释。
二.Shell 编程浅释 返回
1.Shell脚本中函数的使用:
这是一个为下面的程序做铺垫的小例子,关于函数。我们知道函数在各类语言中都是很重要的,它可以使语言模块化,更加清晰,明了。
编写一函数add求两个数的和,这两个数用位置参数传入,最后输出结果。
(1)编辑代码
[root@localhost bin]#gedit test18
#!/bin/sh
add()
{
a=$1
b=$2
z=’expr $a + $b’
echo “The sum is $z”
}
add $1 $2
(2)设置权限
[root@localhost bin]#chmod +x test18
(3)执行
[root@localhost bin]#./ test18 10 20
The sum is 30
注意:
函数定义完成后必须同时写出函数的调用,然后对此文件进行权限设定,在执行此文件。
2.有了上述前提,我们通过一个关于二---十进制转化的例子加以深化。
任何优秀的脚本都应该具有帮助和输入参数。并且写一个伪脚本(framework.sh),该脚本包含了大多数脚本都需要的框架结构,是一个非常不错的主意。这时候,在写一个新的脚本时我们只需要执行一下 copy命令:
cp framework.sh myscript
然后再插入自己的函数。
让我们看下面的例子:
二进制到十进制的转换
脚本 b2d 将二进制数 (比如 1101) 转换为相应的十进制数。这也是一个用expr 命令进行数学运算的例子:
#!/bin/sh
# vim: set sw=4 ts=4 et:
help()
{
cat < b2h -- convert binary to decimal #输出内容到标准输出设备(屏幕)上
USAGE: b2h [-h] binarynum
OPTIONS: -h help text
EXAMPLE: b2h 111010 shell代码
will return 58
HELP
exit 0
}
error() #错误处理
{
# print an error and exit
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论