IT技术博客大学习 共学习 共进步

详解Linux bash中的变量

运维派 2015-06-02 13:34:32 浏览 3,204 次

   在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

建议继续学习

  1. Bash的模式和配置文件加载 (阅读 24,283)
  2. Bash脚本15分钟进阶教程 (阅读 8,902)
  3. Bash 小技巧:给目录加上书签,快速切换目录 (阅读 7,945)
  4. bash shell里反斜杠(backslash)和字符串原文输出(无转义) (阅读 7,681)
  5. Bash如何取得当前正在执行的脚本的绝对路径? (阅读 5,845)
  6. 【总结】美化bash,python的soap client,python获取系统编码函数 (阅读 5,283)
  7. Axure之变量的使用 (阅读 5,041)
  8. Bash Shell 快捷键 (阅读 4,885)
  9. bash下利用trap捕捉信号量 (阅读 4,843)
  10. 深入PHP使用技巧之变量 (阅读 4,661)