位置参数
$0, $1, $2, 等等.(注:$9以后应该为$[10],$[11]......)位置参数, 从命令行传递到脚本, 或者传递给函数, 或者set给变量
$# 命令行参数 或者位置参数的个数
$* 所有的位置参数都被看作为一个单词.
"$*"必须被引用起来
$@ 与$*相同, 但是每个参数都是一个独立的引用字符串, 这就意味着, 参数是被 完整传递的, 并没有被解释或扩展. 这也意味着, 参数列表中每个参数都被看 作为单独 的单词.
"$@"也应该被引用起来
位置参数说明及其使用
#!/bin/bash
#arglist.sh
E_BADARGS=65
if [ ! -n "$1" ]
then
echo "Usage: `basename $0`argument1 argument2 etc."
exit $E_BADARGS
fi
echo
index=1
echo "Listing args with \"\$*\":"
for arg in "$*"
do
echo "Arg #$index=$arg"
let "index+=1"
done
echo "index1=$index"
echo "Entire arg list seen as single word."
echo
index=1
echo "Listing args with \"\$@\":"
for arg in "$@"
do
echo "Arg #$index=$arg"
let "index+=1"
done
echo "index2=$index"
echo "Arg list seen as separate words."
echo
index=1
echo "listing args with \$*(unquoted):"
for arg in $*
do
echo "Arg #$index=$arg"
let "index+=1"
done
echo "index3=$index"
echo "Arg list seen as separate words."
exit 0
阅读(3712) | 评论(0) | 转发(1) |