bash中$@和$*的区别(数组${list[@]}和${list[*]})

$cat 1.sh
#!/bin/bash
for i in "$@"; do echo $i;done 
for i in "$*"; do echo $i;done 
 
declare -a list=(1 2 3 4 5)
for i in "${list[@]}"; do echo $i;done
for i in "${list[*]}"; do echo $i;done
                                                                                                                                                             $bash 1.sh 1 2 3 4
1
2
3
4
1 2 3 4
1
2
3
4
5
1 2 3 4 5


不过数组输出可以用更优雅的方式

echo ${list[@]}  或  echo ${list[*]}

你可能感兴趣的:(SHELL)