Shell编程
shell :弱类型、 解释型语言
解释器:bash
一、变量
bash的变量类型:
环境变量
本地变量(局部变量)
位置变量
特殊变量:bash内置的用来保存某些特殊数据的变量。(也叫系统变量)
本地变量:只属于某一个bash的变量。
var_name=值
作用域:整个bash进程
局部变量:
local var_name =值,
作用域:当前代码段。
环境变量:
export 名字=值
作用域:当前的shell和其子shell。
注意:脚本在执行时都会启动一个子shell进程:
命令行中启动的脚本会继承当前shell环境变量。
系统自动启动脚本(非命令行启动):则需要自我定义环境变量。
位置变量: 用于 脚本执行的参数,$1 表示第一个参数,以此类推
$1,$2….
特殊变量:
$? :上一个命令的执行状态返回值。
$# 传递到脚本的参数个数
$* 传递到脚本的参数,与位置变量不同,此选项参数可超过9个
$$ 脚本运行时当前进程的ID号,常用作临时变量的后缀,如 haison.$$
$! 后台运行的(&)最后一个进程的ID号
$@ 与$#相同,使用时加引号,并在引号中返回参数个数
$- 上一个命令的最后一个参数
$? 最后命令的退出状态,0表示没有错误,其他任何值表明有错误
程序有两类返回值:
- 执行结果
- 执行状态,$? : 0:表示正确,1-255:错误
输出重定向:
>覆盖重定向
>> 追加重定向
2> 错误覆盖重定向
2>>错误追加重定向
&> 全部重定向
撤销变量:
unset 变量名
查看shell中变量:
set 命令
查看shell中的环境变量
printenv
env
export
引用变量:${变量名},一般可以省略{}
单引号:强引用,不作变量替换
双引号:弱引用,做变量替换
反引号:``命令替换