0%

特殊变量

特殊变量

前面已经出现很多特殊变量。如:

1
2
3
$1 $2 $3 $4 $5 ... 
$@ $*
$?

其实还有其他的很多特殊变量。不一定要全部都会,但是记得越多,用起来会更顺手。

特殊变量 说明
$0 脚本名
$1 $2 $3 给脚本、函数传的位置参数
$# 位置参数个数
$* $@ 位置参数数组
$? 上一条语句的返回状态码
$$ 当前进程ID
$- bash开启的选项(set -o)
$! Shell最后运行的后台Process的PID
$_ 最后一条语句所带的参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[root@vm-101 ~]# cat varible.sh
#!/bin/bash

# 注释说明,好习惯

echo "\$# : $#"
echo "\$@ : $@"
echo "\$* : $*"
echo "\$1 : $1"
echo "\$2 : $2"

echo "\$_ : $_" # 上一条语句的参数是:"\$2 : $2"
echo "\$? : $?"
echo "\$$ : $$"
echo "\$- : $-"

echo "\$! : $!"
ping -c www.baidu.com & # 这里有一个新知识点。最后面加&,意思是把这个语句放在后台运行,这里涉及到子进程
echo "\$! : $!"

exit 0


[root@vm-101 ~]# bash varible.sh aaa bbb ccc
$# : 3
$@ : aaa bbb ccc
$* : aaa bbb ccc
$1 : aaa
$2 : bbb
$_ : $2 : bbb
$? : 0
$$ : 4166
$- : hB
$! :
$! : 4167