红联Linux门户
Linux帮助

$#变量的使用

发布时间:2011-04-17 18:38:10来源:红联作者:denglde
$# 变量
用于存放命令行中所键入的参数个数
shell程序测试这个变量确定用户输入的参数个数是否正确
例:编辑args文件内容如下:
echo $# arguments passed
echo arg 1= :$1: arg 2 =:$2: arg 3 =:$3:
执行: args a b c
args a b
args
从这个例子可以看到shell程序将命令行的参数个数传递给了$#变量


关于上面的脚本 一点都不懂 能否 给讲解一下 另外 各个符号啥意思 比如说“:”arg args
文章评论

共有 3 条评论

  1. denglde 于 2011-04-18 22:54:13发表:

    谢谢了

  2. yanyongkg 于 2011-04-17 22:33:04发表:

    :就是冒号在这里没有什么特殊含义,args是脚本文件名无特殊含义,arg是脚本作者只取了arguments头三个字母,无特殊含义,只是echo后面的字串。
    $#是个特殊变量,是位置参数变量的个数。
    $1,$2,$3等都是位置参数变量。[code]echo $# arguments passed
    echo arg 1= :$1: arg 2 =:$2: arg 3 =:$3:[/code]最好这样写[code]echo “$# arguments passed”
    echo “arg 1= :$1: arg 2 =:$2: arg 3 =:$3:”[/code]双引号“”中变量保有变量特性,其它都当普通字符处理。[code] 执行: args a b c
    args a b
    args[/code]这三条是在执行args脚本文件,在文件加上了x可执行权限的情况直接键入文件名可以执行。
    上面应该是有误, . 路径没有加到PATH中的话,要以./args的方式来执行。
    如果不加x可执行权限,sh args也可以执行

  3. 相思爱文 于 2011-04-17 21:04:26发表:

    请读基本教程,把书中的倒子都练习一遍,有不明处可讨论。
    这个例子本身就有书写错误。