Shell特殊变量

来源:互联网 发布:oracle数据库加密 编辑:程序博客网 时间:2024/06/17 03:05

1、位置变量:

$0 获取当前执行的shell脚本的文件名,包含路径

eg:在b.sh中添加echo $0,然后执行:sh /usr/local/opt/shell/b.sh,结果为/usr/local/shell/b.sh

$n   获取当前执行的shell脚本的第n个参数,n=1..9,当N为0时表示文件名,当N大于9时,需要使用大括号括起来${10},如果在1。。9之间可以使用$1..$9

$*    获取当前shell的所有参数,将所有的命令行参数认为是单个字符串,相当于“$1$2....”

$#    获取当前shell命令行中参数的总个数

$@    可以用来进行参数传递,因为他会保留内嵌在参数中的空白,相当于"$1" "$2" "$3"...

2、进程状态变量

$!    执行上一个命令的PID

$$  获取当前shell的进程号

$?   获取执行上一个命令的返回值(0为成功,非0为失败)     #这个变量很有用

$_    在此之前执行命令或脚本的最后一个参数

$?返回值参考:

       0     表示运行成功

       2     表示权限拒绝

       1~125表示运行失败,脚本命令、系统命令错误或者参数传递错误

       126       找到该命令,但是无法执行

       127       未找到要执行的命令

       128       命令被系统强制结束

提示:在脚本调用时,一般使用exit 0,函数return 0

$*和$@的区别:

       $*   将所有的命令行所有参数看作是单个字符串,等同于"$1$2$3"

       $@ 将命令行的每个参数看做是单独的字符串,等同于"$1" "$2" "$3",这样方便将参数传递给

              其他程序,因为他会保留内嵌在每个参数里的任何空白


0 0
原创粉丝点击