- 3
- 0
- 约1.23万字
- 约 12页
- 2016-09-12 发布于重庆
- 举报
非常好的BASH脚本编写教程
非常好的BASH脚本编写教程
2008年07月24日 星期四 17:18
这里有个老American写的 BASH脚本编写教程,非常不错,至少没接触过BASH的也能看懂!
建立一个脚本
Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。
如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit、kedit、emacs、vi
等来编写我们的shell程序。
程序必须以下面的行开始(必须方在文件的第一行):
#!/bin/sh
符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。
当编辑好脚本时,如果要执行该脚本,还必须使其可执行。
要使脚本可执行:
chmod +x filename
然后,您可以通过输入: ./filename 来执行您的脚本。
注释
在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。
变量
在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写:
变量名=值
取出变量值可以加一个美元符号($)在变量前面:
#!/bin/sh
#对变量赋值:
a=hello world
# 现在打印变量a的内容:
echo A is:
echo $a
在您的编辑器中输入以上内容,然后将其保存为一个文件first。之后执行chmod +x first
使其可执行,最后输入./first执行该脚本。
这个脚本将会输出:
A is:
hello world
有时候变量名很容易与其他文字混淆,比如:
num=2
echo this is the $numnd
这并不会打印出this is the 2nd,而仅仅打印this is the ,因为shell会去搜索变量numnd的值,但是这个变量时没有值的。可以使用花括号来告诉shell我们要打印的是num变量:
num=2
echo this is the ${num}nd
这将打印: this is the 2nd
有许多变量是系统自动设定的,这将在后面使用这些变量时进行讨论。
如果您需要处理数学表达式,那么您需要使用诸如expr等程序(见下面)。
除了一般的仅在程序内有效的shell变量以外,还有环境变量。由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因为通常情况下仅仅在登录脚本中使用环境变量。
Shell命令和流程控制
在shell脚本中可以使用三类命令:
1)Unix 命令:
虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令。这些命令通常是用来进行文件和文字操作的。
常用命令语法及功能
echo some text: 将文字内容打印在屏幕上
ls: 文件列表
wc –l filewc -w filewc -c file: 计算文件行数计算文件中的单词数计算文件中的字符数
cp sourcefile destfile: 文件拷贝
mv oldname newname : 重命名文件或移动文件
rm file: 删除文件
grep pattern file: 在文件内搜索字符串比如:grep searchstring file.txt
cut -b colnum file: 指定欲显示的文件内容范围,并将它们输出到标准输出设备比如:输出每行第5个到第9个字符cut -b5-9 file.txt千万不要和cat命令混淆,这是两个完全不同的命令
cat file.txt: 输出文件内容到标准输出设备(屏幕)上
file somefile: 得到文件类型
read var: 提示用户输入,并将输入赋值给变量
sort file.txt: 对file.txt文件中的行进行排序
uniq: 删除文本文件中出现的行列比如: sort file.txt | uniq
expr: 进行数学运算Example: add 2 and 3expr 2 + newtext.file
awk: awk 用来从文本文件中提取字段。缺省地,字段分割符是空格,可以使用-F
您可能关注的文档
- 血管炎的检查及鉴别.doc
- 血管瘤专家解释婴儿鲜红斑痣的的相关问题.doc
- 血管瘤形成的其他原因.doc
- 青马学习心得参考.doc
- 《水化学》池塘养殖水体水质调控.ppt
- 血糖仪与实验室检测血糖比对分析报告1.doc
- 青龙小学导游教育特色学校创建方案.doc
- 血糖仪产品的临床要求.doc
- 青龙水电站安全知识考试试卷.doc
- 《水浒传李逵负荆》.ppt
- 全过程工程管理造价咨询工程监理项目服务方案投标方案(技术部分).doc
- 招标代理服务投标技术服务方案(技术方案).doc
- AI大模型与AIGC技术在公安领域的应用解决方案(99页 PPT).pptx
- 工业4.0智能制造数字工厂规划方案.pptx
- 树立社会主义核心价值观.docx
- 三年(2023-2025)中考历史真题分类汇编(全国)专题21 科技文化与社会生活(解析版).docx
- 2025年中考道德与法治真题完全解读(吉林卷).pdf
- 2025年中考道德与法治真题完全解读(安徽卷).pdf
- 三年(2023-2025)中考历史真题分类汇编(全国)专题14 人民解放战争(解析版).pdf
- 三年(2023-2025)广东中考历史真题分类汇编:专题03 中国近代史(八年级上册)(解析版).docx
最近下载
- 《基因组学》(第4版)-复旦大学 14-第7章 基因的转录调控-PolI和PolIII类基因.pptx VIP
- 《基因组学》(第4版)-复旦大学 13-第6章 基因组解剖-原核生物及细胞器基因组.ppt VIP
- 19.1.1.1 常量与变量 人教版数学八年级下册同步练习(含答案).docx VIP
- 《基因组学》(第4版)-复旦大学 28-第11章 基因组复制-真核生物.ppt VIP
- 希沃白板运用培训ppt课件.pptx
- 《基因组学》(第4版)-复旦大学 3-第1章 基因组-DNA RNA 蛋白质.ppt VIP
- 《基因组学》(第4版)-复旦大学 32-第13章 基因组进化的模式-基因水平的进化.pptx VIP
- 《输变电工程建设前期手续清单》.doc VIP
- 2023-2024学年广东省中山市高二(上)期末考试物理试卷+答案解析.pdf VIP
- 不锈钢轨道车辆激光焊技术规范.docx VIP
原创力文档

文档评论(0)