linux中位置参数变量 $?、$$、$!、$n、$*、$@、$#
1、简介
位置参数变量属于预定义变量的一种,变量名,变量的作用不能更改。
$? 最后一次执行的命令的返回状态。
如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0,证明上一个命令 执行不正确
$$ 当前进程的进程号(PID)
$! 后台运行的最后一个进程的进程号(PID)
$n $0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}
$* 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
$@ 这个变量也代表命令行中所有的参数,不过$*把每个参数区分对待
$# 这个变量代表命令行中所有参数的个数,不算命令本身
2、举例
$* 所有参数作为一个整体
$@ 每个参数都是单独的
vi aa.sh
#!/bin/bash for i in "$*" do echo "The param is :$i" done x=1 for y in "$@" do echo "The param$x is: $y" x=$(($x+1)) done
[root@localhost 11]# ./2.sh 1 2 3 4 5 6 7 8 The param is :1 2 3 4 5 6 7 8 The param1 is: 1 The param2 is: 2 The param3 is: 3 The param4 is: 4 The param5 is: 5 The param6 is: 6 The param7 is: 7 The param8 is: 8