美文网首页Shell 脚本成长笔记
参数处理(三)使用 for 循环读取多个参数

参数处理(三)使用 for 循环读取多个参数

作者: 赵者也 | 来源:发表于2017-05-03 09:41 被阅读3次

    我们除了可以使用上一篇文章中使用到的 while 和 shift 结合的方式来处理多个参数,还可以使用 for 循环来一个接一个地处理所有的命令行参数。

    #! /bin/bash
    
    E_BADARGS=65
    
    if [ ! -n "$1" ]
    then
            echo "Usage: `basename $0` argument1 argument2 ..."
            exit $E_BADARGS
    fi
    
    index=1
    
    echo "Listing args with \$*:"
    
    for arg in $*
    do
            echo "Arg #$index = $arg"
            let index+=1
    done
    
    echo
    
    index=1
    
    echo "Listing args with \"\$@\""
    
    for arg in "$@"
    do
            echo "Arg #$index = $arg"
            let index+=1
    done
    

    注意:上述脚本实例中,两个 for 循环语句中调用的变量分别为 $* 和 "$@"。在这里,$* 是没有双引号的,因为如果加了双引号,即 “$*”,其值将被扩展为包含所有位置参数的值得单个字符串,将使 for 循环仅迭代一次。

    上述脚本的运行测试结果:

    使用效果

    本文参考自 《Linux Shell命令行及脚本编程实例详解

    相关文章

      网友评论

        本文标题:参数处理(三)使用 for 循环读取多个参数

        本文链接:https://www.haomeiwen.com/subject/jgjhtxtx.html