shell变量参数
1、位置参数
由系统提供的参数称为位置参数。
位置参数的值可以用$N得到,N是一个数字,如果为1,即$1.类似C语言中的数组,在shell解释用户的命令时,将把命令行的第一个字作为命令,而其他的字作为参数。
当命令对应的可执行文件为Shell程序时,这些参数将作为位置变量传送给该程序。
第0号为程序名字,从1开始就表示传递给程序的参数。
第一个参数记为$1,第二个为$2....第九个为$9。
其中1到9是真正的参数名,"$"符只是用来标识变量的替换。
2、内部参数
上述过程中的$0是一个内部变量,它是必须的,代表程序本身,而$1则可有可无。
和$0一样的内部变量还有以下几个。
$# ----传递给程序的总的参数数目
$? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
$* ----传递给程序的所有参数组成的字符串。
$- ----在Shell启动或使用set命令时提供选项
$? ----上一条命令执行后返回的值
$$ ----当前shell的进程号
$! ----上一个子进程的进程号
$@ ----所有的参数,每个都用双括号括起
$n ----位置参数值,n表示位置
$0 ----当前shell名
!! 上一条全部命令, 相当于重新输入上一条命令.
!:0 上一次命令, 上一条命令的开头部分.
!^ 上一个命令的第一个参数
!$ 上一个命令的最后一个参数, 个人感觉esc+. 方式比较好.
!* 除了命令之外的所有的参数.