Linux下Shell编程解析
2015-12-17 14:15
459 查看
Linux下命令解释器称为ShellShell是一种具备特殊功能的程序它是介于使用者和UNIX/Linux操作系统之核心程序(kernel)间的一个接口它接收用户输入的命令并把它送入内核去执行不仅如此Shell有自己的编程语言用于对命令的编辑它允许用户编写由shell命令组成的程序Shell编程语言具有普通编程语言的很多特点比如它也有循环结构和分支控制结构等用这种编程语言编写的Shell程序与其他应用程序具有同样的效果 Linux系统提供多种不同的Shell以供选择常用的有BourneShell(简称sh)CShelll(简称csh)KornShell(简称ksh)和BourneAgainShell(简称bash)以下内容来自于教材 ()BourneShell是AT&TBell实验室的StevenBourne为AT&T的Unix开发的它是Unix的默认Shell也是其它Shell的开发基础BourneShell在编程方面相当优秀但在处理与用户的交互方面不如其它几种Shell ()CShell是加州伯克利大学的BillJoy为BSDUnix开发的与sh不同它的语法与C语言很相似它提供了BourneShell所不能处理的用户交互特征如命令补全命令别名历史命令替换等但是CShell与BourneShell并不兼容 ()KornShell是AT&TBell实验室的DavidKorn开发的它集合了CShell和BourneShell的优点并且与BourneShell向下完全兼容KornShell的效率很高其命令交互界面和编程交互界面都很好 ()BourneAgainShell(即bash)是自由软件基金会(GNU)开发的一个Shell它是Linux系统中一个默认的ShellBash不但与BourneShell兼容还继承了CShellKornShell等优点 不论是哪一种Shell它最主要的功用都是解译使用者在命令列提示符号下输入的指令 当登录系统(login)时一个交谈式的shell会跟着起动并提示您输入命令在键入一个命令后接着就是shell的工作了它会进行 语法分析命令列 处理万用字符(wildcards)转向(redirection)管线(pipes)与工作控制(jobcontrol) 另外shell还管理档案输入输出及幕后处理(backgroundprocessing)在处理命令列之后shell会寻找命令并开始执行它们 刚开始学UNIX/Linux系统时大部份的时间会花在于提示符号(prompt)下执行命令 Shell的另一个重要功用是提供个人化的使用者环境这通常在shell的初始化档案中完成(profilelogincshrctcshrc等等)这些档案包括了设定终端机键盘和定义窗口的特征设定变量定义搜寻路径权限限提示符号和终端机类形以及设定特殊应用程序所需要的变量例如窗口文字处理程序及程序语言的链接库 知道了shell以后我们来举例说明shell程序如何编写 范例一让变量sum进行++的加总结果 [root@linux~]#sum=++ [root@linux~]#echo$sum ++ [root@linux~]#declareisum=++ [root@linux~]#echo$sum 使用任意一种文字编辑器比如geditkeditemacsvi等来编写shell脚本它必须以如下行开始(必须放在文件的第一行) #!/bin/bash … 注意最好使用!/bin/bash而不是!/bin/sh如果使用tcshell改为tcsh其他类似 符号#!用来告诉系统执行该脚本的程序本例使用/bin/bash编辑结束并保存后如果要执行该脚本必须先使其可执行 chmod+xfilename 此后在该脚本所在目录下输入/filename即可执行该脚本 [root@localhostshell]#vishsh #!/bin/bash #Program: #Thisprogramshows"HelloWorld!"inyourscreen #History: #//XJMFirstrelease echoe"HelloWorld!\a\n" exit 功能说明显示文字 语法echo[ne][字符串]或echo[help][version] 补充说明echo会将输入的字符串送往标准输出输出的字符串间以空白字符隔开并在最后加上换行号 参数n不要在最后自动换行 e若字符串中出现以下字符则特别加以处理而不会将它当成一般 文字输出 \a发出警告声 \b删除前一个字符 \c最后不加上换行符号 \f换行但光标仍旧停留在原来的位置 \n换行且光标移至行首 \r光标移至行首但不换行 \t插入tab \v与\f相同 \\插入\字符 \nnn插入nnn(八进制)所代表的ASCII字符 –help显示帮助 –version显示版本信息 简单shell程序(脚本一)使用Shell命令实现
相关文章推荐
- 数据中心和云未来的十二大趋势
- 使用 Iisext.vbs 删除应用程序依存关系的实现方法
- Sql Server 应用程序的高级Sql注入第1/2页
- CMD命令行中以管理员权限启动应用程序实现方法
- 编程界主流脚本编程语言的比较和选择
- 什么是Perl?编程语言Perl详细介绍
- rails创建应用程序实例
- 编程语言里的静态、动态、强类型、弱类型等概念介绍
- 实现android应用程序自动化测试的批处理脚本
- 编程趣事:当下流行编程语言的”讨厌”程度排行榜
- 使用 iisext.vbs 添加应用程序依存关系的实现方法
- "虚拟路径"..."映射到另一个应用程序,这是不允许的!
- 创建第一个ASP.NET应用程序(第1节)
- C#实现只运行单个实例应用程序的方法(使用VB.Net的IsSingleInstance)
- 一张图告诉你计算机编程语言的发展历史
- 程序员必看2008编程语言走势解盘
- win2003 R2升级提示另一个应用程序要求重新启动的解决方法
- IIS服务器应用程序不可用解决技巧
- 如何将C语言代码转换为应用程序(也就是编译)
- JS启动应用程序的一个简单例子