Linux bash Shell中的变量类型详解
在Linux系统中进行日常运维或者是编写脚本时,变量是再熟悉不过的了,但这些变量都有哪些类型,具体的用法又有哪些差异呢?本文整理分享给大家:
一、bash变量类型:
本地变量
局部变量
环境变量
位置变量
特殊变量(内置)
二、本地变量:
varname=value:作用域为整个bash进程可以使用;
变量命名规范:
1.只能含字母、数字和下划线,并且以字母和下划线开头
2.最好不要跟系统已有的环境变量重名
3.见名知意
三、局部变量:
localvarname=value:作用域为当前代码段;
四、环境变量:
作用域为当前shell进程及其子进程,不能影响到其父进程;
exportvarname=value“导出”,如果变量已经定义可以只是用变量名exportvarname,即
1.exportvarname=value
2.varname=value
exportvarname
脚本在执行命令时会启动一个子shell环境变量:
系统自动执行的脚本(非命令行启动)就需要自我定义需要的个环境变量;
五、位置变量:
$1,$2,$3,……
catfirst.shtest.txthello
$1:first.sh
$2:test.txt
$3:hello
shift:踢掉参数
shiftn:踢掉n个参数,默认踢掉一个参数
六、特殊变量:
$?:上一个命令执行状态的返回值:
程序执行可能有两种返回值:
1.程序执行结果
2.程序状态返回吗(0-255)
0则为执行正确
1-255则执行出错(1,2,127系统预留);
$#:获取当前shell命令行中参数的总个数
$*:获取当前shell的所有参数“$1$2$3…,受IFS控制
$@:这个程序的所有参数“$1″“$2″“$3″“…”,不受IFS控制
$0获取当前执行的shell脚本的文件名
$n获取当前执行的shell脚本的第n个参数值,n=1..9
$$获取当前shell的进程号(PID)
$!执行上一个指令的PID