$* 与 $@ 的区别详解🥕
下述内容的详细解释:
[root@centos8/~]# cat f1.sh
#!/bin/bash
echo "f1.sh:all args are $@"
echo "f1.sh:all args are $*"
./file.sh "$*" # 加引号演示输出区别
[root@centos8/~]# cat f2.sh
#!/bin/bash
echo "f1.sh:all args are $@"
echo "f1.sh:all args are $*"
./file.sh "$@" # 加引号演示输出区别
[root@centos8/~]# cat file.sh
#!/bin/bash
echo "file.sh:1st arg is $1" # 输出自己的第一个位置变量。用于测试 "$*" 和 "$@" 的本质
######################################################################################
[root@centos8/~]# bash f1.sh a b c
f1.sh:all args are a b c
f1.sh:all args are a b c
file.sh:1st arg is a b c # 说明 "$*" 表示 全部参数合体
[root@centos8/~]# bash f2.sh a b c
f1.sh:all args are a b c
f1.sh:all args are a b c
file.sh:1st arg is a # 说明 "$@" 表示 全部参数按顺序单个排列,不作为整体
=wan