Linux - Shell - 參數獲取


  1. 概述

    1. 參數
    2. 准備重構一版...
  2. 背景

    1. 復習一下 shell 腳本的參數獲取
  3. 場景

    1. os
      1. centos7

1. 參數: 基礎

  1. 概述
    1. 簡單描述 參數

1. 獲取參數

  1. 獲取 第一個 參數

    1. 獲取參數

      1. 使用 ${num} 獲取參數
      2. ${1} 獲取 第一個參數
    2. 代碼

      #!/bin/bash
      var1=${1}
      echo ${var1}
      
    3. 其他

      1. 可以嘗試 ${2}, ${3} 等獲取后續參數
      2. 默認情況下, 如果參數不足, echo 不會報錯, 其他命令, 需要驗證

2. 獲取多個參數

  1. 問題1: 獲取多個參數

    1. 一個一個獲取參數, 如果參數多了, 會不會很麻煩
  2. 解決

    1. 可以一次獲得 所有參數
  3. 方案1: $*

    1. $*

      1. 一次獲取所有參數
    2. 代碼

      #!/bin/bash
      var1=$*
      echo ${var1}
      
  4. 問題2: 分開取參數

    1. 所有參數

      1. $* 獲取到的參數, 是所有參數排在一起的
    2. 需要

      1. 我想單獨獲得 某個參數
    3. 解決

      1. 思路1: 你知道要找 第幾個 參數
        1. 使用 ${num}
      2. 思路2: 什么? 你不知道是第幾個, 但是你就知道要 什么樣的參數
        1. 轉化為 數組
          1. 暫時不推薦
            1. 轉化數組, 我還不會
            2. 轉化后的數組, 不知道 元素下標的話, 需要循環, 數組的操作, 我還是不會
      3. 思路3: 使用 $@
  5. 方案2: $@

    1. 所有參數

      1. 多在 循環時 使用
    2. 代碼

      #!/bin/bash
      for word in "$@"
      do
          echo ${word}
      done
      

3. 獲取最后一個參數

  1. 問題: 最后一個參數

    1. 最后一個
      1. 我就想獲得 最后一個參數
  2. 解決

    #!/bin/bash
    
    # 假設參數是 1 2 3
    # 最后一個參數, ${3}
    var1=${#}
    echo $var1
    echo ${!var1}
    
    # 倒數 第二個參數, ${2}
    var2=$[${#}-1]
    echo $var2
    echo ${!var2}
    
  3. 問題: 手滑沒加參數

    1. 問題

      1. 忽然手滑, 沒有加參數
    2. 結果

      1. 第一段直接打印出了 腳本名

4. 獲取腳本名

  1. 腳本名

    1. ${0}
      1. 打印 ${0} 即可看到
  2. 問題

    1. ./<script>

      1. 顯示 ./<script>
    2. bash <script>

      1. 顯示 <script>
    3. source <script>

      1. 顯示 -bash
        1. ????

ps

  1. ref

    1. 學習 bash
    2. Shell 傳遞參數
    3. Linux獲取最后一個參數(參數統計)
  2. 疑問

    1. 獲取腳本名稱如果這么不穩定, 那是否有 穩定的方法 呢?
  3. 后續嘗試下 獲取 選項


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM