zoukankan      html  css  js  c++  java
  • 3.Shell 接收用户的参数

    1.Shell 传递参数

      我们可以在执行 Shell 脚本时,向脚本传递参数,Linux系统中的Shell脚本语言已经内设了用于接收参数的变量,变量之间可以使用空格间隔。

      例如$0对应的是当前Shell脚本程序的名称,$#对应的是总共有几个参数,$*对应的是所有位置的参数值,$?对应的是显示上一次命令的执行返回值,

    而$1、$2、$3……则分别对应着第N个位置的参数值,如图4-15所示

    尝试编写一个脚本程序示例:

    [root@linuxprobe ~]# vim example.sh
    #!/bin/bash
    echo "当前脚本名称为$0"
    echo "总共有$#个参数,分别是$*。"
    echo "第1个参数为$1,第5个为$5。"
    [root@linuxprobe ~]# sh example.sh one two three four five six
    当前脚本名称为example.sh
    总共有6个参数,分别是one two three four five six。
    第1个参数为one,第5个为five。

    $* 与 $@ 区别:

    • 相同点:都是引用所有参数。
    • 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。
    #!/bin/bash
    # author:菜鸟教程
    # url:www.runoob.com
    
    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
     
  • 相关阅读:
    WPF系列学习之三(路由事件)
    WPF学习系列之二 (依赖项属性)
    WPF学习笔记系列之一 (布局详情)
    常用CDN公共库
    Day2-运算+流程控制+函数
    Day1-shell
    Day10-rsync
    Day2-EMOS
    Day9-Postfix
    Day1-dns Extension
  • 原文地址:https://www.cnblogs.com/yaboya/p/9084353.html
Copyright © 2011-2022 走看看