1、(1)用户自定义变量特点:(1)我们shell不支持数据类型,他将任意赋值给变量的数据当作字符串来处理(2)我们定义变量的时候,不需要给钱($),我们输出的是需要给钱(3)我们定义变量的时候,=两边不能有空格(4)在shell中引用变量必须要加$或者$变量名练习2:1、获取当前用户在/etc/passwd中的行号,用一个变量line保存2、根据这个变量line,获取当前用户在/etc/passwd中的NAME:UID:PID(1,3,4)(2)位置变量$0 : shell脚本的名字$1-$9 :第一个到第九个命令行参数,空格作为分隔符号$# :位置参数的个数不包括shell脚本$*:所有的位置
2、参数$:$?:上一条命令的执行状态或者函数的返回值shell中0为真,非0为假$:获得shell脚本的进程号四、shell语句1、功能性语句read 功能:标准读入一行,并把值赋给后面的变量 read var1 var2 var3stty -echo 关闭回显stty echo 打开回显2、算术计算命令 exprexpr 第一个操作数 运算符 第二个操作数或者(C语言语句) #C shellexpr 1 + 3VAR=expr 1 + 3(VAR=1 + 3)3、test测试注意:test 测试的时候,若是用到等号,等号两边要需要空格test 123 = 456字符串= 测试两个字符串是否相等
3、!= 测试两个字符串是否不相等-z 测试字符串长度是否为0-n 测试字符串长度是否不为02整数-eq 等于-ne 不等于-ge 大于等于-le 小于等于-gt 大于-lt 小于注:-a 且的关系连接多个命令-o 或的关系连接多个命令8 x 8 & 100)test test $x -gt 8 -a $x -lt 1003文件-d:测试是否是一个目录文件-f:测试是否是一个普通文件-w:测试是否可写-r:测试是否可读-x:测试是否可执行2、控制语句(1)单分支语句/if test 表达式if 表达式 then 命令1 命令2 .fiexit 格式:exit n退出shell脚本n :退出码 0
4、表示成功退出 非0 表示退出失败exit 默认表示成功退出/若是判断成立,则执行if中的语句 if ls -l log exit/条件不成立则执行下面语句touch (2)多分支语句C语言中switch(表达式) case 整数常量表达式1: C语言语句 break; case 整数常量表达式2: case 整数常量表达式3: default: case 字符串变量 in 模式1) 命令列表1 ; 模式2) 命令列表2 模式3) 命令列表3 *) 命令列表nesacwhile(表达式) C语言语句while 判断条件do 命令列表done作业:写一个1 + 3 +7 + 9的结果for循环语句
5、中for 变量名 in 单词表do (do接在for后,中间有其他则报错) 命令 .工作原理:循环的次数由单词表决定每次从单词表中取一个变量给单词,然后执行命令构造单词表的方法:1、直接在in后面逐个单词写出来2、通过变量来获得,即命令置换五、shell 函数概念:我们常常把完成固定功能、且多次使用的一组命令(语句)封装在一个特地的结构中 这种结构,我们就叫做函数。我们来看一下函数的格式定义一个函数 function shell_function() 命令1 命令2 调用一个函数 第一种调用方法:函数名 参数1 参数2 获得return 返回的值 注意:return 不能返回一个字符串 function_name arg1 arg2 echo $?第二种调用方法:变量=函数名 参数1 参数2变量保存的是函数通过echo输出function_name arg1 arg2 echo $?
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1