Chinaunix首页 | 论坛 | 博客
  • 博客访问: 783248
  • 博文数量: 108
  • 博客积分: 2887
  • 博客等级: 少校
  • 技术积分: 1570
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-28 07:51
文章分类

全部博文(108)

文章存档

2012年(4)

2011年(86)

2010年(18)

分类: Python/Ruby

2011-03-07 21:25:41

位置参数

$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


阅读(3672) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~