shell编程的变量与编程符号使用

  bash变量类别:

    本地变量: (更小的有局部变量,之限于某一个代码段)

      作用范围仅限当前源程序文件.仅对当前的shell进程有效(即理解为打开的一个shell终端,同时记住父shell的变量在子shell里同样没有效果).

        echo命令:

          -n:输出的时候省去\n(回车).

          -e:显示转义字符.如\t \e. echo -e "hello\tworld"中\t会被输出为table,而如果不加的话则输出 hello\tworld.

        bash中引号的作用:引用

          ‘’(单引号):强引用 引号里的所有东西都当做字符串原封不动使用.

          ""(双引号):弱引用 变量替换.

              echo "$AGE"表示输出AGE变量的值,但是echo '$AGE'则原封不动输出$AGE

          ``(反引号):实现命令替换

       变量的声明和赋值:

        声明:

          declare AGE:(默认声明为字符串)

            -i:声明为整型

            -a:声明为数组.

            -r:声明变量为只读,同readonly

        引用:

          ${VARNAME}:正规引用,有时候花括号可以省略而已.如:$ANIMAL=pig,echo "there are many ${ANIMAL}s".输出的就是pigs,而如果不加花括号的话那么bash会把$ANIMALs当做一个变量而出错.

               撤销变量:

        unset VARNAME(记住不能加$变量符).好的编程习惯就是合适的手动撤销变量以释放内存.

      制度变量:

        readonly VARNAME:变量无法被unset,同时不能被修改.

      变量名:只能包含字母,数字和下划线.环境变量都是大写的,所以尽量不要使用大写变量名或者使用没用过的大写变量名.

      AGE=${A:-40}:如果A有值的话那么将A赋给AGE,如果不存在那么就把40赋给AGE.这里的:可以省去.

 

    环境变量:

      作用范围是当前shell以及其子shell.(其他与本地变量查不多)

       export VARNAME(不需要$符号)或declare -x VARNAME:将VARNAME声明为环境变量

         查看所有环境变量:env,printenv,export都可以

      特殊变量:$?(上一次命令的程序状态返回值)

      程序的返回值:

        程序自身执行的返回值

        程序状态的返回值(是否成功,错误的代码(命令错?目录错?)):1-255都为失败.(1,2,127系统默认了),0表示成功了

posted @ 2014-02-10 15:23  brillliu  阅读(255)  评论(0编辑  收藏  举报