1、编写简单的hello world脚本,查看脚本内容,并运行
2、练习加减乘除、比较等基本的算术运算。
算术运算:采用“$(( exp ))”的形式,内层的小括号中是算术表达式,“$(( ))”只支持整数的算术运算,表达式中的变量可以不使用“$”前导符号;
算术运算:采用“$(( exp ))”进行整数间的算术比较运算,运算符包括“<” “>” “<=” “>=” “==” “!=”,如果比较结果为真,表达式返回1,否则返回0。
3、使用test命令对两个数值比较(等于、小于、大于等于),注释说明含义。
test条件测试-关系运算
关系运算符表达式 →含义
n1 -eq n2 →当n1和n2相等时返回真,否则返回假
n1 -ne n2 →当n1和n2不相等时返回真,否则返回假
n1 -gt n2 →当n1大于n2时返回真,否则返回假
n1 -t n2 →当n1小于n2时返回真,否则返回假
n1 -ge n2 →当n1大于等于n2时返回真,否则返回假
n1 -le n2 →当n1小干等工n2时返回真,否则返回假
4、使用test命令对两个字符串比较(等于、非空、小于),注释说明含义。
test条件测试-字符串运算
字符串运算符表达式 →含义
-z str →当str为空字符串时返回真,否则返回假
-n str →当str为非空字符串时返回真,否则返回假。 -n可省略。
str1==str2 →当str1与str2相等时返回真,否则返回假
str1!= str2 →当str1与str2不相等时返回真,否则返回假
5、使用test命令进行布尔运算,注释说明含义。
test条件测试-布尔运算
布尔运算符表达式 →含义
expr1 -a expr2 →当表达式expr1和expr2同时为真时复合表达式返回真,否则返回假
expr1 -o expr2 →当表达式expr1和expr2任意一个表达式为真时复合表达式返回真,否则返回假
!expr →当表达式expr为真时返回假,否则返回真
6、使用[] 对文件类型、文件权限、文件比较等进行练习。注释说明含义。
test 命令也可以简写为[],它的用法为:[ expression ] #注意[]和expression之间的空格,这两个空格是必须的,否则会导致语法错误;表达式的格式有特别的规定:操作数、运算符及中括号要用空格分隔。
7、使用if-elif结构完成功能。需查看脚本内容,并运行。
8、结合case-in和函数,完成简易计算器。(选择运算符,再输入数)。
脚本三种运行方式的区别。
(1)bash script-name 或 sh script-name
这是当脚本文件本身没有可执行权限(即文件权限属性x位为-号)时常使用的方法(不管脚本有无可执行权限都可以通过这种方式运行),或者脚本文件开头没有指定解释器时需要使用的方法(这种脚本运行方式的bash或sh意思就是给脚本指定了命令解释程序,而脚本中第一行的#!/bin/bash或#!/bin/sh与此作用相同)。推荐使用这种方法。
(2)path/script-name 或 ./script-name
执行条件有二个:脚本文件被赋予了执行权限;脚本文件第一行指定了命令解释程序(一般为#!/bin/bash)
注:在生产环境中,运维人员由于忘记为该脚本设置可执行权限,然后直接使用,导致出错。因此,推荐bashscript-name。
(3)source script-name 或 . script-name
source或者 “.” 命令的功能是:读入脚本并执行脚本,即在当前Shell中执行source或 “.” 加载并执行的相关脚本文件的命令及语句,而不是产生一个子Shell来执行文件中的命令。
注:这是和其他集中执行shell方式的最大不同。
对函数传递参数大于、等于、小于所需参数的三种情形分别试验。