在 Linux 系统中进行日常运维或者是编写脚本时,变量是再熟悉不过的了,但这些变量都有哪些类型,具体的用法又有哪些差异呢?本文整理分享给大家:
一、bash 变量类型: 本地变量 局部变量 环境变量运维 位置变量 特殊变量(内置)
二、本地变量: varname=value:作用域为整个 bash 进程可以使用; 变量命名规范: 1. 只能含字母、数字和下划线,并且以字母和下划线开头 2. 最好不要跟系统已有的环境变量重名 3. 见名知意
三、局部变量: local varname=value:作用域为当前代码段;
四、环境变量: 作用域为当前 shell 进程及其子进程,不能影响到其父进程; export varname=value “导出”,如果变量已经定义可以只是用变量名 export varname,即 1. export varname=value 2. varname=value export varname 脚本在执行命令时会启动一个子 shell 环境变量: 系统自动执行的脚本(非命令行启动)就需要自我定义需要的个环境变量;
五、位置变量: $1,$2,$3,…… cat first.sh test.txt hello $1: first.sh $2: test.txt $3: hello shift:踢掉参数 shift n:踢掉 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