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.
转载于:https://blog.51cto.com/amadou/941929