Linux运维+系统服务搭建(四)shell编程--bash基础
2016-10-19 22:57
218 查看
**shell编程:
编译器:解释器
编程语言: 机器语言、汇编语言、高级语言
编程能力:脚本编程
高级语言:
静态语言:编译型语言
强类型(变量)
关键字:被机器是别的控制指令
程序执行前先编译识别
eg:c/C++/java/c#
动态语言:解释型语言
弱类型
只有在执行的时候才需要转换
ASP/PHP/shell(面向过程)/javascript/python(面向对象)/perl(偏面向过程也有面向对象)/lua
面向对象:将具体抽象成对象
面向过程:问题解决过程本身
每一种语言都有他最适合的场景
变量类型;决定了变量存储的类型
字符
数值
整型
浮点型
2013/10/10—–假如存储字符8字节*8bit=64bit
—–假如存储数值2^24—–3*8=24bit
整型;8bit—256
0-255—–溢出
变量:内存空间、命名内存空间
内存:编址的存储单元
强:变量在使用前,必须事先声明,甚至还需要初始化、
弱;变量用时声明、甚至不区分类型
开始bash:
bash变量类型:
环境变量:
本地变量(包含局部变量):
位置变量:
特殊变量(bash内置—系统变量):
本地变量:
VARNAME=VALUE:整个bash进程
局部变量:
local VARNAME=VALUE :作用域为当前代码段
环境变量:作用域为当前shell进程以及其子进程
export VARNAME=VALUE
bash:变量是进程的变量
随时用随时声明
脚本在执行时会启动一个shell子进程
命令行中的启动的脚本会继承当前的shell环境变量
系统会自动执行的脚本(非其命令行启动)就需要自我定义需要各环境变量
**
开启个子bash,那么只对当前线程有效
引用变量:${NAME}花括号可以省略但是哟时候为了区分需要用,内部有变量想要替换只能使用双引号
编译器:解释器
编程语言: 机器语言、汇编语言、高级语言
编程能力:脚本编程
高级语言:
静态语言:编译型语言
强类型(变量)
关键字:被机器是别的控制指令
程序执行前先编译识别
eg:c/C++/java/c#
动态语言:解释型语言
弱类型
只有在执行的时候才需要转换
ASP/PHP/shell(面向过程)/javascript/python(面向对象)/perl(偏面向过程也有面向对象)/lua
面向对象:将具体抽象成对象
面向过程:问题解决过程本身
每一种语言都有他最适合的场景
变量类型;决定了变量存储的类型
字符
数值
整型
浮点型
2013/10/10—–假如存储字符8字节*8bit=64bit
—–假如存储数值2^24—–3*8=24bit
整型;8bit—256
0-255—–溢出
变量:内存空间、命名内存空间
内存:编址的存储单元
强:变量在使用前,必须事先声明,甚至还需要初始化、
弱;变量用时声明、甚至不区分类型
开始bash:
bash变量类型:
环境变量:
本地变量(包含局部变量):
位置变量:
特殊变量(bash内置—系统变量):
本地变量:
VARNAME=VALUE:整个bash进程
局部变量:
local VARNAME=VALUE :作用域为当前代码段
环境变量:作用域为当前shell进程以及其子进程
export VARNAME=VALUE
bash:变量是进程的变量
随时用随时声明
脚本在执行时会启动一个shell子进程
命令行中的启动的脚本会继承当前的shell环境变量
系统会自动执行的脚本(非其命令行启动)就需要自我定义需要各环境变量
**
开启个子bash,那么只对当前线程有效
引用变量:${NAME}花括号可以省略但是哟时候为了区分需要用,内部有变量想要替换只能使用双引号
位置变量: $1/$2......shift:轮换-----shift 2轮换2个 特殊变量: $?:上一个命令的执行状态返回值 $?退出状态执行码0-255 $#参数的个数 $*参数列表--将参数全都列出来 $@参数列表--将参数全都列出来 程序执行,可能有两类返回值: 程序执行结果: 程序状态返回代码(0-255) 0:正确执行 1-255错误返回不同信息 。。。1/2/127系统预留
输出重定向: > >> 2> 2>> &> /dev/null:软件设备,bit bucket--数据黑洞 那么我们会针对于数据黑洞不返回内容通过$?来确定命令执行内容 撤销变量(无论本地还是局部还是环境): unset VARNAME----撤销变量--如果撤销变量值则使用unset $VARNAME 查看当前shell中变量---特殊变量和位置变量无法查看 set用来查看变量 查看当前shell中环境变量: printenv---- env---- export----设置
path中的路径追加原理如上 脚本:命令的堆砌,按照实际需要结合命令流程控制机制实现的源程序 shebang:魔数 #!/bin/bash------linux内核去读取根据shell脚本标示---出现在首行 #---注释符号
相关文章推荐
- Linux运维+系统服务搭建(一)bash命令及其特性
- Linux运维+系统服务搭建(五)bash条件判断和流编辑器sed基本用法
- Linux运维+系统服务搭建(三)用户管理及权限、IO重定向、grep、正则表达式
- Linux运维+系统服务搭建----Could not retrieve mirrorlist
- Linux运维+系统服务搭建(六)vim编辑器用法 (二)
- Linux运维+系统服务搭建(六)vim编辑器用法
- Linux运维+系统服务搭建(七)文件查找
- 利用WampServer服务来搭建Linux系统安装环境
- 邮件服务系统专题1:如何简易的搭建邮件系统
- Ubuntu系统环境搭建LAMP服务(转)
- Linux学习之CentOS(三十二)--Linux系统服务基础
- 架构搭建系统(一)Struts2基础架构搭建全过程
- 基于RedHat系统来搭建web服务
- Linux邮件服务系统的搭建(一)
- Linux系统服务基础
- RHEL 5基础篇—管理系统服务和进程
- linux 系统基础知识 - 配置ntp服务
- BASH使用基础及SHELL编程基础
- linux 系统基础知识 - 配置vnc服务
- 应用基础架构虚拟化实现公安系统服务优化