zoukankan      html  css  js  c++  java
  • Shell 传递参数

    Shell 传递参数


    $# 传递到脚本的参数个数
    $* 以一个单字符串显示所有向脚本传递的参数。
    如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
    $$ 脚本运行的当前进程ID号
    $! 后台运行的最后一个进程的ID号
    $@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。
    如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
    $- 显示Shell使用的当前选项,与set命令功能相同。
    $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
    
    

    我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。
    n 代表一个数字,0为执行的文件名,
    1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:

    示例: #
    !/bin/bash echo "Shell 传递参数实例!"; echo "执行的文件名:$0"; echo "第一个参数为:$1"; echo "第二个参数为:$2"; echo "第三个参数为:$3";
    为脚本设置可执行权限,并执行脚本,输出结果如下所示: $ chmod
    +x test.sh $ ./test.sh 1 2 3 Shell 传递参数实例! 执行的文件名:./test.sh 第一个参数为:1 第二个参数为:2 第三个参数为:3



    示例:
    #!/bin/bash
    echo "Shell 传递参数实例!";
    echo "第一个参数为:$1";
    echo "参数个数为:$#";
    echo "传递的参数作为一个字符串显示:$*";
    
    

    执行脚本,输出结果如下所示:

    $ chmod +x test.sh 
    $ ./test.sh 1 2 3
    Shell 传递参数实例!
    第一个参数为:1
    参数个数为:3
    传递的参数作为一个字符串显示:1 2 3





    其他处理参数

    #!/bin/bash
      
    echo -e "
    
    Shell 传递参数实例!
    ";
    echo -e "第一个参数为:$1
    ";
    
    echo "参数个数为:$#";
    echo -e "传递的参数作为一个字符串显示:$*
    ";
    
    echo "当前进程ID:$$";
    echo -e "当前进程ID:$$
    ";
    
    echo "最后进程ID号:$!";
    echo -e "最后进程ID号:$!
    ";
    
    echo "所有参数为:$@";
    echo -e "所有参数:$@
    ";
    
    echo "当前选项为:$-";
    echo -e "当前选项:$-
    ";
    
    echo "是否成功:$?";
    echo "是否成功:$?";

    注:echo -e “ ”(-e选项可以转义当中的 等字符)

    输出:

    bogon:~ macname$ ./st.sh 7 8 9
    
    Shell 传递参数实例! 第一个参数为:
    7 参数个数为:3 传递的参数作为一个字符串显示:7 8 9 当前进程ID:19633 当前进程ID:19633 最后进程ID号: 最后进程ID号: 所有参数为:7 8 9 所有参数:7 8 9 当前选项为:hB 当前选项:hB 是否成功:0 是否成功:0



    $* 与 $@ 区别:
    
    相同点:都是引用所有参数。
    不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 123,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。
    #!/bin/bash
    
    echo "-- $* 演示 ---"
    for i in "$*"; do
        echo $i
    done
    
    echo "-- $@ 演示 ---"
    for i in "$@"; do
        echo $i
    done
    执行脚本,输出结果如下所示:
    
    $ chmod +x test.sh 
    $ ./test.sh 1 2 3
    -- $* 演示 ---
    1 2 3
    -- $@ 演示 ---
    1
    2
    3

  • 相关阅读:
    swift 第十四课 可视化view: @IBDesignable 、@IBInspectable
    swift 第十三课 GCD 的介绍和使用
    swift 第十二课 as 的使用方法
    swift 第十一课 结构体定义model类
    swift 第十课 cocopod 网络请求 Alamofire
    swift 第九课 用tableview 做一个下拉菜单Menu
    swift 第八课 CollectView的 添加 footerView 、headerView
    swift 第七课 xib 约束的优先级
    swift 第六课 scrollview xib 的使用
    swift 第五课 定义model类 和 导航栏隐藏返回标题
  • 原文地址:https://www.cnblogs.com/sea-stream/p/9877930.html
Copyright © 2011-2022 走看看