脚本编程基础

  

程序编程风格

  
 <代码>过程式:以指令为中心,数据服务于指令
  对象式:以数据为中心,指令服务于数据 
  

程序的执行方式

  
 <代码>计算机:运行二进制指令
  编程语言:人与计算机之间交互的语言
  低级编程语言
  机器:二进制的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美元)

脚本编程基础