大家都知道普通的bash命令后边可以跟任意的参数(例如在启动hbase的客户端的时候,我们在hbase的bin目录下使用./hbase shell进入到hbase的客户端),那我们自己编写的脚本是否也支持传递参数呢?答案当然是肯定的,但是怎么编写这样的shell程序呢?这就需要使用到位置参数。
位置参数($数字):
eg:
name=$1中$1为系统提供的位置参数,$0代表程序的名称,[$1/$2/…]从1开始为传递的参数。
在./hbase shell中,$0的值为./hbase,$1的值为shell
linux系统除了提供位置参数还提供内置参数,内置参数如下:
- $# —-传递给程序的总的参数数目
- $? —-上一个代码或者shell程序在shell中退出的情况,如果正常退出-则返回0,反之为非0值。
- $* —-传递给程序的所有参数组成的字符串。
- $n —-表示第几个参数,1表示第一个参数,2 表示第二个参数 … - $0 —-当前程序的名称
- $@—-以”参数1” “参数2” … 形式保存所有参数
- $$ —-本程序的(进程ID号)PID
- $! —-上一个命令的PID