版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
BASH脚本编程入门一个最简单的脚本一个最经典的HelloWorld程序#!/bin/bashechoHelloWorld这个脚本只有二行,它的第一行这个脚本程序由那个程序来解释.第二行只有一个简单的动作,它的功能是在终端上打印出一行”HelloWorld”。如果你测试着执行这个命令时〔./hello.sh〕,你将会得到一个commandnotfound的信息,这种情况大局部可能是你的第一行#!/bin/bash这个程序有问题,你一定要确保bash可以找到并且可用。(一般情况下你还要对这个脚本附一个可执行权限)一个非常简单的备份脚本#!/bin/bash
tarczvfseqs.tar.gzseqs/
标准输出这个例子将会使ls的显示结果重定向到一个文件中.ls-l>ls-l.txt标准错误$!@$$!$@>grep-errors.txt管道管道可以使你非常方便的将一个程序的结果转向到另外一个程序中。一个sed的例子这个例子使用了非常简单的管道功能:ls-l|sed-e"s/[fasta]/u/g"ls-l|sed-e"s/fasta/u/g"变量你可在任何编程语言中使用变量,但是在脚本编程中它们是没有类型的,简称弱类型编程语言,在这个变量中可以保含一个数字,一个字符串,一个单词等。你并不需要声明这个变量,它会在引用这个变量时创立它。使用变量来实现一个简单的HelloWorld#!/bin/bash
STR="HelloWorld!"
echo$STR变量第二行建立一个STR的变量并且为其附了一个“HelloWorld”的字符串变量值。当在这个变量前面加上一个$符号时,我们就将会得到这个变量的值。例子〔一个使用变量的备份脚本〕#!/bin/bash
OF=seqs.tar.gz
tarzxvf$OF./条件语句条件语句可以使你决定是完成一个运作或是不去完成一个动作时,通过一些判断来实现,一般情况都是通过一些操作符来实现判断。条件语句可以有许多实现方法,最多的情况是基于ifexpressionthen这种情况,也就是大家常常说的if判断语句。它的语法根本结构如下:if[expression];
then
codeif'expression'istrue.
fi一个最根本的使用if...then的例子#!/bin/bash
if["foo"="foo"];then
echoexpressionevaluatedastrue
fi条件语句这段代码执行if判断,如果foo等于foo的话,那么你就会执行then语句下的输出语句,最后通过fi来结束,这里我要强调一点,就是很多新手在输入源码时特别是在if语句后面没有空格,在大括号后面没有空格,在等号两边没有空格,这些都会制造出一些麻烦的。一个简单的控制if..then...else#!/bin/bashif["foo"="foo"];thenechoexpressionevaluatedastrueelseechoexpressionevaluatedasfalsefi通过变量进行判断控制#!/bin/bashT1="foo"T2="bar"if["$T1"="$T2"];thenechoexpressionevaluatedastrueelseechoexpressionevaluatedasfalsefi循环结构对于for循环它有一点不同于其他的编程语言,它有一点像VB中的foreach语句,就是所谓的递归的循环。对于while循环,它其实是一个加强的if语句,如果它的条件为真,那么它就一直执行while循环中的语句中的内容。7.1Forsample#!/bin/bashforiin$(ls);doechoitem:$idone循环结构在第二行上,我们声明了一个i的变量,它将一直将ls命令的结果全部循环出来。其中do和done之间是所要执行的代码。While循环例子#!/bin/bashCOUNTER=0while[$COUNTER-lt10];doechoThecounteris$COUNTERletCOUNTER=COUNTER+1done循环结构这里面大家可能看到一个-lt的命令选项,这里它代表小于等于-eq等于-ne不等于-gt大于-ge大于等于-lt小于-le小于等于Until的例子
#!/bin/bashCOUNTER=20until[$COUNTER-lt10];doechoCOUNTER$COUNTERletCOUNTER-=1done函数
函数的例子#!/bin/bashfunctionquit{exit}functionhello{echoHello!}helloquitechofoo在函数中使用参数#!/bin/bashfunctionquit{exit}functione{echo$1}eHelloeWorldquitechofoo使用select命令制作简单的菜单#!/bin/bashOPTIONS="HelloQuit"selectoptin$OPTIONS;doif["$opt"="Quit"];thenechodoneexitelif["$opt"="Hello"];thenechoHelloWorldelseclearechobadoptionfidone使用read读入用户输入在多数情况下你可能会用到提示请进行输入这种状态并且有几种方法可以用。这是其中的一种方法:#!/bin/bashechoPlease,enteryournamereadNAMEecho"Hi$NAME!"对于变量来说,你可以通过多个值来读入。#!/bin/bashechoPlease,enteryourfirstnameandlastnamereadFNLNecho"Hi!$LN,$FN!"算术操作使用以下的命令:echo1+1如果你希望看到2,那么你会很
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西师范大学美术学院880美术专业基础历年考研真题汇编
- 2021年常州大学硕士考研真题822化工原理
- 2024年重庆市万州三中物理高一下期末联考模拟试题含解析
- 2021年4月自考00537中国现代文学史试题及答案
- 广东省汕头市潮师高级中学2023-2024学年高一物理第二学期期末监测模拟试题含解析
- 2024年山东省临沂市第十九中新高一物理第二学期期末质量检测试题含解析
- 【可行性报告】2023年重组人生长激素行业项目可行性分析报告
- 2023年10月自考00166企业劳动工资管理试题
- 2024年新疆维吾尔自治区昌吉市教育共同体四校物理高一下期末质量跟踪监视模拟试题含解析
- 山东省烟台市第二中学2024年物理高一下期末复习检测模拟试题含解析
- (3.6)-新民主主义革命的道路
- 围墙技术交底
- 国开毛泽东思想和中国特色社会主义理论体系概论形考任务答案(专题一到八)
- 虚拟电厂-负荷聚合平台软件需求说明书
- 有机硅化学课件-硅橡胶
- 2023年安徽省公安机关警务辅助人员条例训练题库211题及答案
- 七年级美术下册 第6课《红杜鹃》课件6 赣美版
- 抖音号合伙入股运营以及利润分红协议
- 基于RFID仓库管理系统解决方案-课件
- 马克思主义政治经济学-经济全球化与国际经济关系课件
- 《论语》导读(复旦版)学习通超星课后章节答案期末考试题库2023年
评论
0/150
提交评论