- 1
- 0
- 约4.97万字
- 约 55页
- 2017-12-11 发布于上海
- 举报
我们首先以一个具有针对性的最新课程作为开始,随后对本书
我们首先以一个具有针对性的最新课程作为开始,随后对本书中所用到的技术进行简要说明。这些说明涉及的内容非常广泛,从逐行处理文件的最快方式到UNIX和shell脚本的大小写区分。虽然没有包括脚本编程的所有方面,但却是一个很好的开端,而且给出了本书中一个主题的例子。对于在本章中列出的每个主题,在本书后面的章节中都会有一个详细的说明。
我们鼓励读者完整地学习完本书。书中的每一章都使用不同方式对不同的主题进行了讨论。这样做的目的是为了强调绝不是只有一种技术可以解决UNIX中的问题。本书中的所有shell脚本都是解决实际应用中某个问题的例子。读者在阅读本书时,会发现书中讨论了UNIX中的大多数常见任务(也有一些不太常见的任务)。所有的shell脚本都对思考问题的过程进行了良好的解释,而且我们总是以正确的命令语法作为开始,来编写针对某个特定目的的shell脚本。希望读者在阅读本书时能够和我编写本书时一样感到快乐。下面让我们开始吧!
1.1 区分大小写
UNIX是区分大小写的。因此,我们编写的shell脚本也区分大小写。
1.2 UNIX特殊字符
下面所有的字符都具有特殊的意义或功能。如果它们以一种不需要其特殊意义的方式来使用,则必须进行转义(escaped)。为进行转义或去除它的特殊功能,这些字符必须在前面带有一个反斜杠\,或者使用单引号括起来。
\ / ; , . ~ # $ ? * ( ) [ ] ‘ + - ! ^ = |
1.3 shell
shell(命令行解释器)是一个能够用来运行命令、程序和shell脚本的环境。shell具有不同的版本,就像操作系统具有不同的版本一样。每种版本的shell都具有各自可以识别的命令集和函数集,本书使用的是Bourne、Bash和Korn shell。根据UNIX版本和版本号的不同,shell位于/usr/bin目录或/bin/目录下,如表1-1所示。
表1-1 不同UNIX中shell所在目录
shell 目 录 Bourne /bin/sh或/usr/bin/sh Bash /bin/Bash或/usr/bin/Bash Korn /bin/ksh或/usr/bin/ksh
1.4 shell脚本
shell脚本shell脚本shell脚本function function_name
{
commands to execute
}
或
function_name ()
{
commands to execute
}
当在脚本中编写函数时,必须记住要在使用之前对其进行声明或定义。函数部分必须出现在调用函数的命令语句之前。不能调用尚不存在的函数。
1.6 运行shell脚本
shell脚本ksh shell_script_name
以上命令将创建一个Korn shell,并在新创建的Korn shell环境中执行shell_script_name。这对于sh和Bash shell脚本也适用。
shell_script_name
如果在文件中设置执行位为1(参见chmod命令的参考页面,man chmod),那么以上命令将执行shell_script_name。脚本将在当前shell脚本的第一行所声明的shell中执行。如果在shell脚本的第一行没有声明shell,则脚本将在默认的shell中执行,即用户所在系统定义的shell。在一个非预期的shell中执行脚本可能会导致失败或无法预料的结果。
注意,一定要声明shell。如果想对脚本的运行方式以及在哪个shell下运行进行完全的控制,则必须在shell脚本的第一行对shell进行声明。如果没有声明,则脚本将在默认shell中执行,即用户所在的系统为执行shell脚本定义的shell。例如,如果脚本被编写为在Bash shell,Bash中运行,而默认运行shell脚本的shell为C shell, csh,那么脚本在执行过程中很可能会出错。要声明一个shell,必须在shell脚本的第一行出现如表1-2所示的声明语句。
表1-2 声明不同类型的shell
命 令 描 述 #!/bin/sh 或 #!/usr/bin/sh 声明一个Bourne shell #!/bin/ksh 或 #!/usr/bin/ksh 声明一个Korn shell #!/bin/csh 或 #!/usr/bin/csh 声明一个C shell #!/bin/Bash或#!/usr/bin/Bash 声明一个Bourne-Again(Bash)shell 1.7 shell脚本#!/bin/Bash
#
# SCRIPT: NAME_of_SCRIPT
# AUTHOR: AUTHORS_NAME
#
您可能关注的文档
- 实干+创新——实现幼儿园品牌的提升.doc
- 宝钢集团有限公司2014年可交换公司债券发行公告.PDF
- 室内甲醛去除方法.doc
- 家长这样做,遭遇性侵后孩子依然可以有快乐人生.PDF
- 家长通评测:家校一体,促进学生全面健康成长.pdf
- 富贵全能展业夹.ppt
- 对外投资收购武汉正华51%股权的公告.PDF
- 将军澳「翠岭峰」˙屯门「翠鸣台」申请须知(白表申请人适.PDF
- 小学数学教学中如何培养学生创新精神.doc
- 小学语文检阅课件3.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 原调正谱G小小蝴蝶la farfalletta钢琴伴奏高清打印版.pdf VIP
- 上海大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- 广发证券-交通银行-601328-零售转型提速,定增落地夯实资本根基.pdf
- 上海大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 循环系统护理小讲课.pptx
- 建筑屋面西瓦专项施工方案(范本).doc VIP
- 2024年山东铝业职业学院单招综合素质考试题库及答案1套.docx VIP
- 探究TIPS术后支架堵塞的影响因素及抗凝治疗的必要性:基于多维度分析与临床实践.docx
- 成品仓库出货明细表.pdf VIP
- 贵州省黔西南州2025年中考数学试卷及答案.pdf VIP
原创力文档

文档评论(0)