shell中的特殊变量
$? :上一个命令的执行状态返回值
$#::参数的个数
$*:参数列表,所有的变量作为一个字符串
$@:参数列表,每个变量作为单个字符串
$1-9,${10}:位置参数
$$:脚本的进程号
$_:之前命令的最后一个参数
$0:脚本的名称
$!:运行在后台的最后一个进程ID
那么问题来了,这些特殊的变量怎么传递到shell中定义函数中去呢?
一个脚本说明问题
[root@lamp tmp]# cat test.sh
#!/bin/sh func ()
{
echo "$1"
echo "$2"
echo "$#"
echo "$*"
echo "$@"
echo "$?"
echo "$0"
echo "$$"
} func $ echo ===== I am split line ======== echo "$1"
echo "$2"
echo "$#"
echo "$*"
echo "$@"
echo "$?"
echo "$0"
echo "$$"
[root@lamp tmp]# sh test.sh argument1 argument2
argument1 argument1
argument1 test.sh ===== I am split line ========
argument1
argument2 argument1 argument2
argument1 argument2 test.sh [root@lamp tmp]#