程序编程风格
<代码>过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据代码>
程序的执行方式
<代码>计算机:运行二进制指令 编程语言:人与计算机之间交互的语言 低级编程语言 机器:二进制的0和1的序列,称为机器指令。与自然语言差异太大,难懂,难写 汇编:用一些助记符号替代机器指令,称为汇编语言 ? ?如:添加A、B将寄存器一个的数与寄存器B的数相加得到的数放到寄存器中 ? ? ? ?汇编语言写好的程序需要汇编程序转换成机器指令 ? ? ? ?汇编语言稍微好理解,即机器指令对应的助记符,助记符更接近自然语言代码>
高级编程语言
<代码>编译:高级语言——祝辞编译器——在机器代码,在执行 ? ? ? ? C, c++ ?解释:高级语言——祝辞执行——在解释器——在机器代码 ? ? ? ?壳,python, php, JavaScript, perl代码>
壳脚本
包含一些命令或声明,并符合一定格式的文本文件
引用>格式要求
<代码>首行声明序列 ? ? ? # !/bin/bash 添加注释 ? ? ?注释以#开的头 运行脚本 ? ? ?给予脚本执行权限,在命令行指定脚本的绝对或相对路径 ? ? ?直接运行解释器,将脚本作为解释器程序的参数运行代码>壳脚本的用途有
<代码>自动化常用命令 执行系统管理和故障排除 创建简单的应用程序 处理文本或文件代码>脚本调试
<代码>检测脚本中的语法错误 ? ?bash - n路径代码>调试执行
bash - x路径 引用>
壳中变量命名法则
<代码> 1,不能使程序中的保留字:例如,如果 2,只能使用数字,字母及下划线,且不能以数字开的头 3,见名知义 4、统一命名规则:驼峰命名法代码>壳中命名建议规则
<代码> 1,变量名大写 2、局部变量小写 3、函数名小写 4、用英文名字,并体现出实际作用代码>bash中变量的种类
根据变量的生效范围等标准划分下面变量类型
<强>局部变量强>:生效范围为当前壳进程;对当前壳之外的其它进壳程,包括当前壳的子shell进程均无效
<强>环境变量强>:生效范围为当前壳进程及其子进程
<强>本地变量强>:生效范围为当前壳进程中某代码片断,通常指函数
<强>位置变量强>:$ 1,$ 2,…来表示,用于让脚本在脚本代码中调用通过命令行传递给它的参数<>强特殊变量强>:$ ?$ 0 $,$ @ $ # $ $
引用> 引用> 引用>
? ?0美元这个程式的执行名字
? ?$ n这个程式的第n个参数值,n=1 . . 9, n=10时,用$ {n}表示
? ?$ *传递给脚本的所有参数,全部参数合为一个字符串
? ?$ #这个程式的参数个数
? ?$ $这个程式的PID(脚本运行的当前进程ID号)
? ?美元!执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)
? ? $ ?执行上一个指令的返回值(显示最后命令的退出状态0表示没有错误,其他任何值表明有错误)
? ?美元——显示外壳使用的当前选项,与集命令功能相同
? ?$ * $ @跟类似,传递给脚本的所有参数,每个参数为独立字符串局部变量
<代码>变量赋值:name=凹壑怠? 可以使用引用价值 (1)可以是直接字串:name="根" ?(2)变量引用:name=" $用户” ?(3)命令引用:name=命令=$ ? ? ?名字(命令) 变量引用:$ {name}或美元者的名字 ?”“弱引用,其中的变量引用会被替换为变量的值 吗?”“强引用,其中的变量引用不会被替换为变量的值,而保持原字符串代码>显示已定义的所有变量:设置
引用>
删除变量:设置名称环境变量
<代码>变量声明,赋值: ? ?出口名称=值 ? ?声明- x的名字=价值 变量引用: ? ?名字,美元${名称} 显示所有环境变量: ? ? env ? ? printenv 出口? ? ? ?声明- x 删除变量 ?设置名称代码>算术运算
bash<代码>中的算术运算:帮助我们 ? ?+、-、*、/?取模(取余),\ * *(乘方),乘法符号有些场景中需要转义 实现算术运算: ? ?(1)让var=算术表达式 ? ? (2)var=$[算术表达式) ? ? (3)var=$((算术表达式)) ? ? (4)var=$ (expr __arg1最长长度……) ? ?(5)宣布我var=数的值 ? ?(6)回波的算术表达式”| bc bash有内建的随机数生成器变量:随机美元(0 - 32767) ? ?示例:生成0 - 49之间随机数 ? ?echo $(随机% 50美元)脚本编程基础