陈斌彬的技术博客

Stay foolish,stay hungry

Linux Bash 中的变量

一、bash变量类型:

  • 本地变量
  • 局部变量
  • 环境变量
  • 位置变量
  • 特殊变量(内置)

二、本地变量:

作用域为整个 bash 进程可以使用;

变量命名规范:

  1. 只能含字母、数字和下划线,并且以字母和下划线开头
  2. 最好不要跟系统已有的环境变量重名
  3. 见名知意

三、局部变量:

作用域为当前代码段;

四、环境变量:

作用域为当前 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