Linux--shell编程原理--03
一、编程原理:1、编程介绍:计算机只能识别二进制指令 ? 程序=指令+数据 根据服务的重心不同,我们分为面向过程编程,面向对象编程; a) 面向过程:侧重于指令的编程语言 b) 面向对象:侧重于数据的编程语言 2、编程语言的分类:高级语言、超高级语言需要翻译成计算机可读的语言(二级制指令) ?????? a) 解释型:逐行翻译,逐行执行(解释一行、执行一行)shell、python ?????? b) 编译型:一次编译,全部执行 ?C、C++、C# 3、编程语言的执行方式:a) 顺序执行 : 一行一行的执行 b) 循环执行 : for、while、until c) 选择执行(分支): if、case 二、shell脚本语言介绍:1、优点:调用os(操作系统)的命令行,来实现所有功能; 2、缺点:没有库调用(区分python) 3、shell脚本包括?????? a) 命令**很重要** ?????? b) 变量(全局变量、局部变量、本地变量、传参) c) 逻辑关系 4、shell的第一句话: #!/bin/bash? --- 定义脚本解释器/etc/shells – 查看当前系统支持的shell程序 echo $SHELL – 查看当前会话的shell程序 /etc/passwd – 制定了用户默认支持的shell程序(/sbin/nologin) ?5、shell的执行:a) bash命令来执行脚本: -n 查看shell脚本的逻辑错误(注意单词的错误检查不出来) -x 逐行显示执行的脚本程序(方便排错) b) 授权: chmod u+x filename.sh?? 使用全路径执行脚本即可 三、变量:一段被命名的内存空间1、环境变量---关于命令历史的变量:PATH是环境变量的一种---环境变量查看:env ---查看更详细的环境变量:set 2、局部变量 declare命令 ---定义变量类型3、本地变量 local 在函数中使用4、变量类型:a) 数值型: ? 整型 ?int 浮点型 float ? 布尔型 boolean b) 字符串: 普通字符及字符串 数组 5、编程语言的分类:强类型语言: --- 数值必须被定义变量类型,才能进行处理或运算 弱类型语言: --- 编程语言可以自动识别变量类型 【*多态*】一种数值具有多个属性,而最后使用的属性取决于和他进行运算的数据 6、传参:$? :代表上一条命令的执行状态 0表示正确 ?1~255表示错误 $1、$2 … ${10}:执行脚本命令后面传入脚本的数据,以空格为分隔符 $#?? :统计传参数量 ?${$#} $* :表示所有的传参,以字符串的形式进行输出 [email?protected] :表示所有的传参,将所有的传参以列表的形式进行输出 7、定义变量的格式:NAME=VALUE 通过declare定义变量类型 declare -i a=10 定义变量a为整型,value为10 declare -a b? 定义数组 8、变量命名:a) 下划线的方式指定变量名称 b) 使用驼峰命名方式 四、test文件测试、条件判断在脚本中,我们需要进行语句分支;就是做判断; 判断就是使用test命令来实现 1、使用格式:a) test [option] file b) [条件语句] 2、常见的test选项:a) 数值比较选项: -eq? 等于 -ne? 不等于 -gt? 大于 -ge? 大于等于 -lt? 小于 -le? 小于等于 b) 判断选项: -e? 判读文件是否存在 -f? 判断是否为普通文件 -d? 判断是否为目录文件 -L? 判断是否为链接文件 -r -w -x?? 判断是否具有 读 写 执行 c) 关联选项: -o? 或 -a? 与 !? 非 d) 字符串判断: =?? 判断两边的字符串是否相等 !=? 不等于 -z?? 判断字符串是否存在,存在为真,不存在为假 -n??? 和-z相反 存在为假,不存在为真 五、逻辑运算?????? 与 && ?????? 或 || ?????? 非 != 例子: [ $? -eq 0] && exit 0 || exit 1 六、算术运算?????? let 1+1 ?????? expr 1*1 ?????? $[ $1 + 10 ] ?????? $(($1/$2)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |