动态语言:解释型语言,是一种弱类型的语言,特性:边解释边执行。例如:PHP、SHELL、python、perl
弱:变量用时声明,甚至不区分类型。
强:变量在使用前,必须事先声明,甚至还需要初始化
bash:本身就是一个软件,脚本解释器。
shell脚本是面向过程的。
bash变量类型:
环境变量
本地变量(局部变量)
位置变量
特殊变量
本地变量:
VARNAME=VALUE;作用域:整个bash进程
局部变量
local VARNAME=VALUE;作用域:为当前代码段
环境变量:作用域为当前shell进程及其子进程;
①export VARNAME=VALUE
②VARNAME=VALUE
export VARNAME
位置变量:
$1,$2,...
特殊变量:
$7:上一个命令的执行状态返回值
程序执行,可能有两类返回值:
程序执行结果
程序状态返回代码(0-255)
0:正确执行
1-255:错误执行 1,2,127系统预留
echo $? 查看上一条命令执行的状态
引用变量:$(VARNAME),括号有时可省略
脚本在执行时会启动一个子shell进程,命令行中启动的脚本会继承当前shell环境变量,系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量
输出重定向:
> 覆盖重定向
>>追加重定向
2>错误重定向
2>>错误追加重定向
&>同时重定向
撤销变量:unset VARNAME 撤销环境变量、本地变量
查看当前shell中变量:包括环境变量、本地变量
set
查看当前shell中的环境变量:
printenv
env
export
在一个变量中添加新的东西:
NAME=xiao
NAME=$NAME:/liu 后补
NAME=tian:$NAME 前补
注意:所有的shell变量都是字符串,不可以进行算术运算
脚本:命令的堆砌,按实际需要,结合命令流程控制机制实现的源程序
第一个脚本:
脚本开头第一行必须写:
#!/bin/bash
#注释行,不执行
一般的写出的脚本没有执行权限:chmod +x filename
但是有两种方式执行:
①在PATH路径下加上文件的路径名
②只在当前路径下执行 ./filename
去掉执行权限:chmod -x filename
指定bash解释器执行 bash filename
原文:http://www.cnblogs.com/lcitforever/p/5877400.html