1、变量(重点)
1.1、变量的含义a.什么是量量就是数据.b.什么是变量数据可以发生改变就是变量.在一个脚本周期内,其值可以发生改变的量就是变量.c.什么叫做一个脚本周期一个脚本周期我们可以简单的理解为当前的shell文件变量是shell中不可或缺的一部分,也是最基础、最重要的组成部分。
1.2、变量的定义与使用(重点)变量,先定义后使用。定义形如:class_name="yunwe"使用形如:echo$class_name变量就是由2部分组成,一个是变量名(左边),另外一部分是变量的值(右边)变量名和变量值是什么关系??变量名和变量值是使用和被使用关系;我们的变量名来使用变量值;在使用变量的时候一定需要在变量名前面添加一个$符号,该要求在其他语言中也存在的(例如php)。变量名的规范注意,变量名后面的等号左右不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。中间不能有空格,可以使用下划线“_”。能使用标点符号。不能使用bash里的关键字(可用help命令查看保留关键字)。问题:以下哪个shell变量名是合法的?A.varB.?varC.user*nameD.echo
案例1:使用变量改写入门脚本中的第1个shell脚本。关于单双引号的问题:双引号能够识别变量,双引号能够实现转义(类似于“\*”)单引号是不能识别变量,只会原样输出,单引号是不能转义的
案例2:定义一个变量,输出当前时间,要求格式为“年-月-日时:分:秒”。注意:反引号(esc键下方的那个键),当在脚本中需要执行一些指令并且将执行的结果赋给变量的时候需要使用“反引号”。1.3、只读变量(了解)语法:readonly变量名
案例:定义变量a并且其值为10,随后设置其为只读变量,再去尝试重新赋值1.4、接收用户输入(重点)语法:read-p提示信息变量名案例:编写一个脚本test6.sh,要求执行之后提示用户输入文件的名称(路径),然后自动为用户创建该文件1.5、删除变量(了解)语法:unset变量名path案例:定义变量b=20,再输出b的值,随后删除b,最后再输出下b
2、条件判断语句老婆给当程序员的老公打电话:下班顺路买一斤包子带回来,如果看到卖西瓜的,买一个。当晚,程序员老公手捧一个包子进了家门...老婆怒道:你怎么就买了一个包子?!老公答曰:因为看到了卖西瓜的。把程序员老婆的话当作一段需求分析一下吧。买一斤包子是一个确定无疑的需求项,无论后面是什么情况什么条件,前面这一斤包子是肯定要买的。看到卖西瓜的是一个条件判断,后面“买一个”是一个模糊不清的需求项,买一个什么呢?需求里没说啊。客户把这个当作开发人员默认了解的内容了。可是作为一个成熟合格的程序员,该老婆的丈夫应该马上跟进确认需求“买一个什么?”,要不然程序可怎么写呢?所以笑话里该程序员是不合格的,起码是不积极不负责的。在没有明确需求的情况下,他只能按照自己的理解来完成工作了。那比较可能的结果就有如下几种:1看到卖西瓜的,买一个西瓜如果看到卖西瓜的那么买一个西瓜否则买一斤包子2看到卖西瓜的,买一个包子如果看到卖西瓜的那么买一个包子3看到卖西瓜的,买一个卖西瓜的4看到卖西瓜的,买一个老婆一直想买的东西5看到卖西瓜的,随便买一个东西上述1和2下面的条件汉字描述称之为“伪代码”,也是属于条件表达式的语法。语法1(一个条件):ifcondition
thencommand1command2...fi单行写法(一般在命令行中执行的时候):if[condition];thencommand;fi语法2(两个条件):ifconditionthencommand1command2...elsecommandfi语法3(多个条件):ifcondition1thencommand1elifcondition2thencommand2elsecommandNfi3、运算符在shell中,运算符和其他编程脚本语言一样,常见的有算数运算符、关系运算符、逻辑运算符、字符串运算符、文件测试运算符等
3.1、算数运算符下表列出了常用的算术运算符,假定变量a为10,变量b为20:运算符说明举例+加法`expr$a+$b`结果为30。
-减法`expr$a-$b`结果为-10。*乘法`expr$a\*$b`结果为200。/除法`expr$b/$a`结果为2。%取余`expr$b%$a`结果为0。=赋值a=$b将把变量b的值赋给a。==相等。用于比较两个数字,相同则返回true(真)。[$a==$b]返回false(假)。!=不相等。用于比较两个数字,不相同则返回true。[$a!=$b]返回true。注意:条件表达式要放在方括号之间,并且要有空格,例如:[$a==$b]是错误的,必须写成[$a==$b]。原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如awk和expr,expr最常用。expr是一款表达式计算工具,使用它能完成表达式的求值操作。例如,两个数相加(注意使用的是反引号`而不是单引号'):#!/bin/bashval=`expr2+2`echo"两数之和为:$val"两点注意:表达式和运算符之间要有空格,例如2+2是不对的,必须写成2+2,这与我们熟悉的大多数编程语言不一样。完整的表达式要被``包含,注意这个字符不是常用的单引号,在Esc键下边。