shell编程中经常用到的一些变量,简洁而有趣.这其中的含义,需要说明一下.

        $*  传递到脚本的参数.与位置参数不同,该参数可超过9个.

        $#  传递到脚本的参数的个数.例如${#name[*]},表示由数组$name[*]返回的参数的个数.

        $@  与$#类似,但它是一个一个的传递参数的,表示拆分的字符串数组.使用时加引号,并在引号中返回参数的个数.

        $-  上一个命令的最后一个参数.

        $$  脚本运行时当前进程的ID号,常用作临时变量的后缀,如 mypwd$$.

        $!  后台运行(脚本后附加&)的最后一个进程的ID号.

        $?  表示上一条命令执行后的返回值,为"0"表示命令执行结果正确,其它任何非0值均表示命令执行结果出错.

        $0  是位置参数,表示脚本(名)或命令名本身.

       $1  是位置参数,表示脚本的第一个参数.类似有还有$2,$3...$9.

       shift   是将命令行上的实参数左移一位,但不包括$0本身.

       常用的环境变量有:

        HOME  用户主目录的绝对路径名

        LOGNAME   用户注册名,由linux系统命名 

        PWD  当前的工作路径

        PATH  shell命令的目录列表. PATH = $PATH : $HOME / bin 

        MAIL  用户邮箱路径

        SHELL  当前使用的shell.现在大都使用bsh(bash shell),在unix发展的早期还用过csh,tcsh,ksh,zsh等.

        PS1  shell的主提示符,默认是"\s-\v\$". 其中\s-表示shell的名称,\v表示shell的版本.

       TREAM  表示终端的类型.

       注意在使用环境变量时,同样也要在变量名加上"$".例如,$PWD,$HOME.