由于在上次博文中使用$* 和$@两种符号是出现输出结果不同,在此对shell中的特殊变量进行简单分析一下,方便以后更加方便、准确的使用他们。
下面将上次博文中的代码粘贴在这里:
~/shell$ cat for.sh
#!/bin/bash
echo "print each parameter from \"\$*\""
for var in "$*"
do
echo $var
done
echo "print each parameter from \"\$@\""
for var in "$@"
do
echo $var
done
~/shell$ bash for.sh 120 56 string a to #运行代码
print each parameter from "$*"
120 56 string a to
print each parameter from "$@"
120
56
string
a
to
明显的从上述代码中看出,同样的执行命令和执行语句,一个输出结果是一行的一串字符串,一个是一列的字符串,结果明显是不同的。
shell的特殊变量,可用在如脚本,函数传递参数中,有如下几种特殊的变量: $0、$n、$#、 $* 和 $@ 。
$0 获取shell脚本文件名,以及脚本路径。
$n 获取shell脚本的第n个参数,n在1~9之间,如$1 ,$2,... $9 ,大于9则需要写,
${10},参数空格隔开。