shell之$@ $* " $*"
双引号括起来的情况:
$*将所有的参数认为是一个字段
$@以 默认为空格 来划分字段,如果空格在“”里面,不划分。
没有括起来的情况是
@
和
@和
@和*一样的,见到 空格 就划分字段。
$#是 程序的 参数个数(不包括$0)
$? 获取上一次命令执行的返回值,一般 执行 成功 返回0。
$0 $1 $2 以此类推,取命令行参数,如 test.sh a b c ,则 $0 是 test,$1是 a, $2是b,$3是c。
eg
[root@localhost day01]# cat test1.sh
#echo $@
#echo "$*"
#echo $*
for i in $*
do
echo $i
done
for j in "$*"
do
echo $j
done
for n in $@
do
echo $n
done
for m in "$@"
do
echo $m
done
echo $1,$2,$3,$0
结果就为
[root@localhost day01]# sh test1.sh 1 2 3
1
2 有空格就换行
3 # $*
1 2 3 # "$*" 将参数整体作为一个字段输出
1
2
3 # $@
1
2
3 # "$@"
1,2,3,test1.sh