位置参数变量
位置参数变量 | 作用 |
---|---|
$n | n为数字,$0代表命令本身,$1- 9 代 表 第 一 个 到 第 九 个 参 数 , 十 以 上 的 参 数 需 要 用 大 括 号 包 含 , 如 9代表第一个到第九个参数,十以上的参数需要用大括号包含,如 9代表第一个到第九个参数,十以上的参数需要用大括号包含,如{10} |
$* | 这个变量代码命令行中所有的参数,$*把所有的参数看成一个整体 |
$@ | 这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待 |
$# | 这个变量代码命令行中所有参数的个数 |
∗ 和 *和 ∗和@的区别
#$*中所有的参数看成是一个整体,所以这个for循环只会循环一次
#!/bin/sh
for i in "$*"
do
echo "The parma is : $i"
done
运行结果:
The parma is : 1 2 3 4 5 6
#$@中的每个参数都看成独立的,所以,$@中有几个参数,就会循环几次
#!/bin/sh
x=1
for x in "$@"
do
echo "The param $x: is $x"
x=$(($x+1))
done
运行结果:
The param 1: is 1
The param 2: is 2
The param 3: is 3
The param 4: is 4
The param 5: is 5
The param 6: is 6
预定义变量
预定义变量 | 作用 |
---|---|
$? | 最后一次执行的命令的返回状态,如果这个变量的值为0,证明上一个命令在正确执行,如果这个变量的值不为0,证明上一个命令执行不正确 |
$$ | 当前进程的进程号(PID) |
$! | 后台运行的最后一个进程的进程号(PID) |