标签:email 个数 结构 shell脚本基础 编程风格 数据 magedu his 命令行
编程基础?程序:算法+数据结构
?数据:是程序的核心
?数据结构:数据在计算机中的类型和组织方式
?算法:处理数据的方式
过程式:以指令为中心,数据服务于指令
对象式:以数据为中心,指令服务于数据
? 计算机:运行二进制指令
? 编程语言:人与计算机之间交互的语言
机器:二进制的0和1的序列,称为机器指令。与自然语言差异太大,难懂、难写
汇编:用一些助记符号替代机器指令,称为汇编语言
编译:高级语言-->编译器-->机器代码-->执行
C,C++
解释:高级语言-->执行-->解释器-->机器代码
shell,python,php,JavaScript,perl
顺序执行
循环执行
选择执行
编程语言的基本结构:
各种系统命令的组合
数据存储:变量、数组
表达式: a + b
语句:if
包含一些命令或声明,并符合一定格式的文本文件
#!/bin/bash
#!/usr/bin/python
#!/usr/bin/perl
? 自动化常用命令
? 执行系统管理和故障排除
? 创建简单的应用程序
? 处理文本或文件
?第一步:使用文本编辑器来创建文本文件
?第一行必须包括shell声明序列:#!
#!/bin/bash
?添加注释
注释以#开头
?第二步:运行脚本
?给予执行权限,在命令行上指定脚本的绝对或相对路径
?直接运行解释器,将脚本作为解释器程序的参数运行
?脚本代码开头约定
1、第一行一般为调用使用的语言
2、程序名,避免更改文件名为无法找到正确的文件
3、版本号
4、更改后的时间
5、作者相关信息
6、该程序的作用,及注意事项
7、最后是各版本的更新简要说明
#!/bin/bash
#------------------------------------------
#Filename: hello.sh
#Revision: 1.1
#Date: 2017/06/01
#Author: wang
#Email: wang@gmail.com
#Website: www.magedu.com
#Description: This is the first script
#------------------------------------------
#Copyright: 2017 wang
#License: GPL
echo “hello world”
?检测脚本中的语法错误
bash -n /path/to/some_script
?调试执行
bash -x /path/to/some_script
shell中的变量分为
? ?1.局部变量:作用范围在当前shell进程,无法在父子进程或其他进程之间传递,
? ? 2.全局变量:作用范围在当前shell与其有血缘关系的进程中。
? ? 3.本地变量:作用范围在脚本中某段代码中。
? ? 4.位置变量:用于通过命令向脚本的位置变量传递参数。
? ? 5.特殊变量:用于表示某些变量的信息。
?```
1.局部变量:
? ? 赋值:name=‘value‘
? ? value可以是任意字符串。因为shell变量是弱类型变量,所以为变量不需要事先声明也没有类型。当变量被引用时会根据语句来匹配变量类型。
? ? set命令可以打印所有已有定义的变量。unset name用于删除已定义的变量。
2.全局变量
? ? 赋值:export name=‘value‘
? ? evn命令可以打印当前所有全局变量。
3.只读变量
? ? 赋值:readonly name=‘value‘
只读变量只能声明,无法修改与删除。但是可以使用readonly -p name查看只读变量。
4.位置变量
? ? 可以使用$1、$2、$3…来对变量进行引用,shift命令可以修改变量队列。
????$0: 命令本身
????$*: 传递给脚本的所有参数,全部参数合为一个字符串
????$@: 传递给脚本的所有参数,每个参数为独立字符串
????$#: 传递给脚本的参数的个数
????$@ $* 只在被双引号包起来的时候才会有差异
????set -- 清空所有位置变量
# 退出状态
? ? shell利用退出状态码来判断进程的执行状态。
? ? “0”表示进程执行成功,其他数字“1~255”表示进程执行失败。退出状态存储在“$?”变量中,在脚本执行中,退出状态取决于脚本中最后执行命令的退出状态。
? ? 也可以通过"exit N"来设置进程的退出状态,但是脚本执行到"exit"语句时会立即停止脚本的执行。
标签:email 个数 结构 shell脚本基础 编程风格 数据 magedu his 命令行
原文地址:http://blog.51cto.com/13958408/2310477