处理用户输入_特殊参数变量_获取所有的数据
#!/bin/bash
# $*:将所有的命令行参数视为一个单词。
# $@:将所有的命令行参数视为同一个字符串中的多个独立的单词,以便能遍历并处理全部参数。通常用for命令。
# 当$*出现在双引号内时,会被扩展成由多个命令行参数组成的单个单词,每个参数之间以IFS
# 变量值的第一个字符分隔,也就是说,"$*"会被扩展为"$1c$2c..."(其中c是IFS变量值的第一个字符)。
# 当$@出现在上引号内是,其所包含的各个命令行参数会被扩展成独立的单词,也就是说,
# "$@"会被扩展为"$1""$2"...。
# testing different methods for grabbing all the parameters
echo
echo "using the \$* method: $*"
echo
echo "using the \$@ method: $@"
echo
echo "从表面上看,两个变量产生的输出相同,均显示了所有命令行参数。"
echo "下面的例子演示了不同之处:"
# exploring different methods for grabbing all the parameters
echo
echo "using the \$* method: $*"
count=1
for param in "$*"
do
echo "\$* parameter #$count = $param"
count=$[ $count + 1 ]
done
echo
echo "using the \$@ method: $@"
count=1
for param in "$@"
do
echo "\$@ parameter #$count = $param"
count=$[ $count + 1 ]
done
echo
exit
# ./grabbingallparams.sh alpha beta charlie delta
./grabbingallparams.sh alpha beta charlie delta