美文网首页Linux
Shell 传递参数

Shell 传递参数

作者: 谢小帅 | 来源:发表于2017-05-03 18:22 被阅读23次

    执行 Shell 脚本时,可以向脚本传递参数。
    脚本内获取参数的格式为:$n

    • $0 为执行的文件名
    • $1 为执行脚本的第一个参数,$2 为执行脚本的第二个参数,以此类推……
    • $#:参数总个数
    • $@$*都可以得到所有参数,但是双引号情况下有区别
    #!/bin/bash
    
    echo "Shell 传递参数实例!";
    echo "执行的文件名:$0";
    echo "第一个参数为:$1";
    echo "第二个参数为:$2";
    echo "第三个参数为:$3";
    echo "参数个数为:$#";
    echo "传递的参数作为一个字符串显示:$*";
    echo ""
    
    # $* 与 $@ 区别只有在双引号中体现出来
    # 假设在脚本运行时写了三个参数 1、2、3
    # "*" 等价于 "1 2 3"(传递了一个参数)
    # "@" 等价于 "1" "2" "3"(传递了三个参数)
    echo "* 与 @ 区别"
    
    echo "使用双引号的情况"
    for i in "$*"; do
        echo $i
    done
    echo ""
    
    for i in "$@"; do
        echo $i
    done
    echo ""
    
    echo "不使用双引号的情况"
    for i in $*; do
        echo $i
    done
    echo ""
    
    for i in $@; do
        echo $i
    done
    echo ""
    

    输出

    ShuaideMacBook-Pro:Desktop shuai$ ./a.sh 1 2 3 4
    Shell 传递参数实例!
    执行的文件名:./a.sh
    第一个参数为:1
    第二个参数为:2
    第三个参数为:3
    参数个数为:4
    传递的参数作为一个字符串显示:1 2 3 4
    
    * 与 @ 区别
    使用双引号的情况
    1 2 3 4
    
    1
    2
    3
    4
    
    不使用双引号的情况
    1
    2
    3
    4
    
    1
    2
    3
    4
    
    ShuaideMacBook-Pro:Desktop shuai$ 
    

    相关文章

      网友评论

        本文标题:Shell 传递参数

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