总结下shell中以$开头的变量的作用
$$: 表示sheel本身的PID
$!: 表示sheel最后运行的后台进程的PID
$?: 最后运行的命令的结束代码(返回值)
$-: 使用set命令设定的FLAG 一览
$* :所有的参数列表,以“$1 $2 $3 ... $n”的形式输出所有参数 (需要用双引号引起来)
$@: 所有的参数列表,以“$1” "$2" "$3" ... "$n"的形式输出所有参数(注意和上面格式不同) 注意
$@ $* 只在被双引号包起来的时候才会有差异
示例:
#!/bin/bash
#set -x
my_fun() {
echo "$#"
}
my_fun $*
my_fun $@
my_fun "$*"
my_fun "$@"
运行结果:
sh test.sh a b c
3
3
1
3
3
3
1
3
$#:shell的参数的个数
$0: shell 本身的文件名
$1-$n : shell的参数,$1是第一个参数,$2是第二个参数