Day: May 26, 2016

Linux Shell脚本入门教程系列之(十二)Shell until循环

本文是Linux Shell脚本系列教程的第(十二)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上两篇文章Linux Shell系列教程之(十)Shell for循环和Linux Shell系列教程之(十一)Shell while循环中,我们已经对Shell 循环语句的for循环和while循环进行了详细介绍,本篇给大家介绍下Shell 中的最后一种循环语句:Shell until循环。 Shell until循环的介绍 Shell until循环和while循环差不多,区别在于while的条件测试是测真值,until循环则是测假值。 也就是说,在while循环中,如果条件测试结果为真(传回值为0),就进入循环;在until循环中,如果条件测试结果为真(传回值为0),就跳出循环,如果测试结果为假(传回值不为0),则继续循环。 Shell until循环语法 Shell until循环的语法如下: until command do Statement(s) to be executed until command is true done command 为条件表达式,如果返回值为 false,则继续执行循环体内的语句,否则跳出循环。 Shell until循环使用举例 还是老规矩,通过例子来深入了解下Shell until循环。… Read More

Linux Shell脚本入门教程系列之(十一)Shell while循环

本文是Linux Shell脚本系列教程的第(十一)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上一篇Linux Shell系列教程之(十)Shell for循环中,我们已经对Shell 循环语句的for循环进行了介绍,本篇给大家介绍下Shell 中另一种循环语句:Shell while循环。 Shell while循环语法及特点 Shell while循环的语法如下所示: while command do Statement(s) to be executed if command is true done command 为条件测试,如果传回值为0(条件测试为真),则进入循环,执行命令区域,否则不进入循环。 在执行命令的区域中,应该要有改变条件测试的命令,这样,才有机会在有限步骤后结束执行while循环(除非想要执行无穷循环)。 while循环通常用来不断执行一系列命令,也可以用来从输入文件中读取数据; 命令通常为测试条件。 Shell while循环使用举例 了解了Shell while循环的语法及特点以后,接下来通过几个例子来详细了解下Shell while循环的使用。 例子1: COUNTER=0 while [… Read More

Linux Shell脚本入门教程系列之(十)Shell for循环

本文是Linux Shell脚本系列教程的第(十)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 基本任何语言都有自己的循环语句,Shell当然也不例外,继上一篇之后,今天就为大家介绍下Shell for循环的用法。 Shell for循环语法 Shell for循环的语法如下所示 for 变量 in 列表 do command1 command2 ... commandN done 列表是一组值(数字、字符串等)组成的序列,每个值通过空格分隔。每循环一次,就将列表中的值依序放入指定的变量中,然后重复执行命令区域(在do和done 之间),直到所有元素取尽为止。 Shell for循环示例 接下来通过示例的方式给大家介绍下Shell for循环的用法。 for loop in one two tree four do echo "I am : $loop" done… Read More

Linux Shell脚本入门教程系列之(九)Shell判断 if else 用法

本文是Linux Shell脚本系列教程的第(九)篇,更多shell教程请看:Linux Shell脚本系列教程 判断语句是每个语言都必不可少的关键语法,Shell命令当然也不例外。继上一篇之后,今天就给大家介绍下Shell判断语句 if else 用法。 if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。 Shell 有三种 if else格式: if … fi 格式 if … else … fi 格式 if … elif … else … fi 格式 下面我就分别就这几种格式来为大家详细介绍下。 一、Shell判断语法之if … else 格式 if … else 格式的语法:… Read More

Linux Shell脚本入门教程系列之(八)Shell printf命令详解

本文是Linux Shell脚本系列教程的第(八)篇,更多shell教程请看:Linux Shell脚本系列教程 在上一篇:Linux Shell系列教程之(七)Shell输出这篇文章中,已经对Shell printf命令有了一个简略的介绍,本篇给大家详细介绍下Shell中的printf命令。 一、Shell printf命令语法 printf format-string [arguments...] format-string为描述格式规格的字符串,用来描述输出的排列方式,最好为此字符串加上引号。此字符串包含按字面显示的字符以及格式声明,格式声明时特殊的占位符,用来描述如何显示相应的参数。 arguments是与格式声明相对应的参数列表,例如一系列的字符串或变量值。 格式声明由两部分组成:百分比符号(%)和指示符。 最常用的格式指示符有两个,%s用于字符串,而%d用于十进制整数。 格式字符串中,一般字符会按字面显示。转义序列则像echo那样,解释后再输出成相应的字符。格式声明以%符号开头,并以定义的字母集中的一个来结束,用来控制相应参数的输出。 二、Shell printf命令转义序列 Shell printf命令的转义序列如下表所示 序列 \a 警告字符,通常为ASCII的BEL字符 \b 后退 \c 不显示输出结果中任何结尾的换行字符,而且任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符都被忽略。 \f 换页 \n 换行 \r 回车 \t 水平制表符 \v 垂直制表符 \\ 反斜杠字符 三、Shell… Read More

Linux Shell脚本入门教程系列之(七)Shell输出

本文是Linux Shell脚本系列教程的第(七)篇,更多shell教程请看:Linux Shell脚本系列教程 与其他语言一样,Shell中也有输出操作,而且在实际应用中也是非常重要的,继上一篇之后,今天就为大家介绍下Shell输出操作。 Shell echo命令 echo命令是Shell的一个内部指令,用于在屏幕上打印出指定的字符串。 命令格式: echo arg 转义字符 像其他高级语言一样,Shell也使用反斜杠“\”作为转义字符。 例子: echo "\"It is a test\"" 输出:”It is a test” 输出变量 使用echo命令可以直接输出变量,示例如下: name="justcode.ikeepstudying" echo "$name It is a test" 输出:justcode.ikeepstudying It is a test 如果变量与其它字符相连的话,需要使用大括号({ }),示例如下: mouth=8 echo… Read More

Linux Shell脚本入门教程系列之(六)Shell数组, shell 数组遍历方式

本文是Linux Shell脚本系列教程的第(六)篇,更多shell教程请看:Linux Shell脚本系列教程 Shell在编程方面非常强大,其数组功能也非常的完善,继上一篇之后,今天就为大家介绍下Shell数组的用法。 Shell支持一维数组(不支持多维数组),并且没有限定数组的大小。 类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。 一、Shell数组的定义 在Shell中,用括号来表示数组,数组元素之间用“空格”分割开。 定义数组的一般形式为: array_name=(value1 … valuen) 例如: array_name=(value0 value1 value2 value3) array_name=( value0 value1 value2 value3 ) 而且还可以单独定义数组的各个分量: array_name[0]=value0 array_name[1]=value1 array_name[2]=value2 可以不使用连续的下标,而且下标的范围没有限制。 二、Shell数组的赋值 直接通过 数组名[下标] 就可以对其进行引用赋值,如果下标不存在,自动添加新一个数组元素 使用示例: [justcode@ikeepstudying ~]$ a[1]=100 [justcode@ikeepstudying ~]$ echo ${a[*]}… Read More

Linux Shell脚本入门教程系列之(五)Shell字符串

本文是Linux Shell脚本系列教程的第(五)篇,更多shell教程请看:Linux Shell脚本系列教程 字符串是Shell编程中最常用最有用的数据类型,继上一篇之后,今天,Linux大学网就为大家介绍一下在Shell中的字符串用法,以及Shell中常用的字符串操作。 Shell字符串用法 Shell中的字符串可以用引号包起来,也可以不用引号。 用引号的话可以用双引号,也可以用单引号。其单双引号的区别跟PHP相类似。 接下来给大家介绍下Shell中字符串单双引号的区别和用法举例。 加单引号 用法示例 str='justcode.ikeepstudying.com' 加单引号的特点: Shell单引号里的任何字符都会被原样输出,单引号字符串中的变量无效; Shell单引号字串中不能出现单引号(对单引号使用转义符也不行)。 加双引号 用法示例 myweb='justcode.ikeepstudying.com' str="Hello, you are browsing \"$myweb\"! \n" 加双引号的优点: Shell双引号里可以有变量 Shell双引号里可以出现转义字符 所以,建议大家在使用Shell时,对字符串要加上引号,而且最好加双引号。 Shell字符串的操作 Shell中对于字符串的操作如下表格所示: 表达式 含义 ${#string} $string的长度 ${string:position} 在$string中, 从位置$position开始提取子串 ${string:position:length} 在$string中, 从位置$position开始提取长度为$length的子串 ${string#substring}… Read More

Linux Shell脚本入门教程系列之(四)Shell注释

本文是Linux Shell脚本系列教程的第(四)篇,更多shell教程请看:Linux Shell脚本系列教程 与许多的编程语言一样,Shell中也有注释符号,继上一篇之后,今天就为大家来介绍下Shell中的注释的语法及用法。 Shell中的注释以“#”号开头,所有以“#”号开头的代码都会被解释器所忽略。 比如下面的代码: #!/bin/bash # Author : justcode.ikeepstudying.com # Date : 2016-05-15 echo "What is your name?" read PERSON echo "Hello, $PERSON" 其中以“#”号开头的Author字段和Date字段就是Shell中的注释。 而且Shell中没有多行注释,只有单行注释,所以只有这一种注释方式来注释代码。   原文:Linux Shell系列教程之(四)Shell注释 本文:Linux Shell脚本入门教程系列之(四)Shell注释… Read More

Linux Shell脚本入门教程系列之(三)Shell变量

本文是Linux Shell脚本系列教程的第(三)篇,更多shell教程请看:Linux Shell脚本系列教程 Shell作为一种高级的脚本类语言,也是支持自定义变量的。继上一篇之后,今天就为大家介绍下Shell中的变量相关知识。 为使Shell编程更有效,系统提供了一些Shell变量。Shell变量可以保存诸如路径名、文件名或者一个数字这样的变量名。 Shell将其中任何设置都看做文本字符串。有两种变量,本地和环境。严格地说可以有 4种,但其余两种是只读的,可以认为是特殊变量,它用于向Shell脚本传递参数。 定义变量 定义变量时,变量名不加美元符号($),如: variableName=”value” 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则: 首个字符必须为字母(a-z,A-Z)。 中间不能有空格,可以使用下划线(_)。 不能使用标点符号。 不能使用bash里的关键字(可用help命令查看保留关键字)。 变量定义举例: myUrl=http://justcode.ikeepstudying.com myNum=100 使用变量 使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如: your_name="justcode.ikeepstudying" echo $your_name echo ${your_name} 变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况: for skill in Ada Coffe Action Java do echo "I am good at ${skill}Script"… Read More

详细介绍Linux shell脚本系列基础学习(列表)

本系列适合Linux初学者,属于Linux入门级教程,主要介绍了Shell的分类、语法格式以及脚本的使用和编写格式等。 不断更新中,是Shell学习的必读经典教程。现主要包含以下文章: Linux Shell脚本入门教程系列之(一)Shell简介 Linux Shell脚本入门教程系列之(二)第一个shell脚本 Linux Shell脚本入门教程系列之(三)Shell变量 Linux Shell脚本入门教程系列之(四)Shell注释 Linux Shell脚本入门教程系列之(五)Shell字符串 Linux Shell脚本入门教程系列之(六)Shell数组 Linux Shell脚本入门教程系列之(七)Shell输出 Linux Shell脚本入门教程系列之(八)Shell printf命令详解 Linux Shell脚本入门教程系列之(九)Shell判断 if else 用法 Linux Shell脚本入门教程系列之(十)Shell for循环 Linux Shell脚本入门教程系列之(十一)Shell while循环 Linux Shell脚本入门教程系列之(十二)Shell until循环 Linux Shell脚本入门教程系列之(十三)Shell分支语句case … esac教程 Linux Shell脚本入门教程系列之(十四) Shell… Read More

Linux Shell脚本入门教程系列之(二)第一个shell脚本

本文是Linux Shell脚本系列教程的第(二)篇,更多shell教程请看:Linux Shell脚本系列教程 通过上一篇教程的学习,相信大家已经能够对shell建立起一个大体的印象了,接下来,我们通过一个最简单的脚本来继续深入对shell的学习。 新建shell脚本 新建一个文件,扩展名为sh(sh代表shell),或者其他任意名字,其实扩展名并不影响脚本执行,见名知意就好,这里用sh是为了便于分辨。 在你新建的文件中输入以下内容: #!/bin/bash echo "Hello World !" “#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一个Shell来执行。 echo命令用于向窗口输出文本。 运行shell脚本 运行Shell脚本有两种方法。 1)作为可执行程序 将上面的代码保存为test.sh,并 cd 到相应目录: chmod +x ./test.sh #使脚本具有执行权限 ./test.sh #执行脚本 注意,一定要写成./test.sh,而不是test.sh。 运行其它二进制的程序也一样,直接写test.sh,linux系统会去PATH里寻找有没有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH里,你的当前目录通常不在PATH里,所以写成test.sh是会找不到命令的,要用. /test.sh告诉系统说,就在当前目录找。 通过这种方式运行bash脚本,第一行一定要写对,好让系统查找到正确的解释器。 2)作为解释器参数 这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,如: /bin/sh test.sh /bin/php test.php 这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。… Read More

Linux Shell脚本入门教程系列之(一)Shell简介

本文是Linux Shell脚本系列教程的第(一)篇,更多shell教程请看:Linux Shell脚本系列教程 想要学习linux,shell知识必不可少,今天就给大家来简单介绍下shell的基本知识。 Shell简介 Shell自身是一个用C语言编写的程序,是用户来使用Unix或Linux的桥梁,用户的大部分工作都需要通过Shell来完成。只有熟练使用shell,才能熟练掌握linux。 可以说:Shell既是一种命令语言,又是一种程序设计语言。 作为命令语言,它可以交互式地解释和执行用户输入的命令;而作为程序设计语言,它可以定义各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。 Shell虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式来协调各个程序的运行。 因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Unix/Linux系统的关键。 可以说,shell使用的熟练程度反映了用户对Unix/Linux使用的熟练程度。 Shell有两种执行命令的方式: 交互式(Interactive):解释执行用户的命令,用户输入一条命令,Shell就解释执行一条。 批处理(Batch):用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令。 Shell脚本和编程语言很相似,也有变量和流程控制语句,但Shell脚本是解释执行的,不需要编译,Shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一行敲到Shell提示符下执行。 但是,Shell初学者请注意,在平常应用中,不要用 root 帐号运行 Shell 。作为普通用户,不管您有意还是无意,都无法破坏系统;但如果是 root,那就不同了,只要敲几个字母,就可能导致灾难性后果。 常用的Shell类型 上面提到过,Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本。 Unix/Linux上常见的Shell脚本解释器有bash、sh、csh、ksh等,习惯上把它们称作一种Shell。 我们常说有多少种Shell,其实说的是Shell脚本解释器。 下面来介绍下几种常用的Shell。 bash bash是Linux标准默认的shell,本教程也基于bash讲解。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的缩写,内部命令一共有40个。 Linux使用它作为默认的shell是因为它有诸如以下的特色: 可以使用类似DOS下面的doskey的功能,用方向键查阅和快速输入并修改命令。 自动通过查找匹配的方式给出以某字符串开头的命令。 包含了自身的帮助功能,你只要在提示符下面键入help就可以得到相关的帮助。 sh sh 由Steve Bourne开发,是Bourne Shell的缩写,sh… Read More