• 在 shell中, 我們可用 $0, $1, $2, $3 ... 這樣的变量分別提取命令行中变量


    代码: script_name parameter1 parameter2 parameter3 ...
    我們很容易就能猜出 $0 就是代表 shell script 名称(路径)本身,而 $1 就是其后的第一个参数, 依次类推....

    須得留意的是 IFS 的作用,也就是, 若 IFS 被 quoting 處理後, 那麼 positional parameter 也會改變。
    如下例:
    代码: my.sh p1 "p2 p3" p4
    fucntion 時, 我不是說過它是 script 中的 script

    一例外的是 $0 而已。
    舉例 而 言 : 假設 my.sh 裡有一個 fucntion 叫 my_fun , 若 在 script 中 跑 my_fun fp1 fp2 fp3 ,
    那麼, function 內的 $0 是 my.sh , 而 $1 則是 fp1 而非 p1 了 ...
    不如寫個簡單的 my.sh script 看看吧:
    代码: #!/bin/bash

    my_fun() {

    echo '$0 inside function is '$0

    echo '$1 inside function is '$1

    echo '$2 inside function is '$2

    }

    echo '$0 outside function is '$0

    echo '$1 outside function is '$1
    echo '$2 outside function is '$2

    my_fun fp1 "fp2 fp3"

    然後在 command line 中跑一下 script 就知道了:
    代码: chmod +x my.sh ./my.sh p1 "p2 p3"

    $0 outside function is ./my.sh

    $1 outside function is p1

    $2 outside function is p2 p3

    $0 inside function is ./my.sh

    $1 inside function is fp1

    $2 inside function is fp2 fp3


    我們常在 shell script 裡用如下方法測試 script 是否有读进参数:
    代码:
    if [ $# = 0 ] //看到没有,所有的[]中的内容都必须和括号有空格
    假如為 0 , 那就表示 script 沒有參數, 否則就是有帶參數...

  • 相关阅读:
    C语言第二次实验报告
    C语言第一次实验报告
    java远程开关机
    html5 总结
    css media 媒体查询
    移动端适配rem
    判断Android系统和iPhone系统 QQ游览器 微信
    原生javascript 选项卡封装
    浅谈坐标系以及之间的转换
    百度地图开发的学习(二)——地图定位
  • 原文地址:https://www.cnblogs.com/haoxing990/p/4627445.html
Copyright © 2020-2023  润新知