-
概述
- 參數
- 准備重構一版...
-
背景
- 復習一下 shell 腳本的參數獲取
-
場景
- os
- centos7
- os
1. 參數: 基礎
- 概述
- 簡單描述 參數
1. 獲取參數
-
獲取 第一個 參數
-
獲取參數
- 使用 ${num} 獲取參數
- ${1} 獲取 第一個參數
-
代碼
#!/bin/bash var1=${1} echo ${var1}
-
其他
- 可以嘗試
${2}, ${3}
等獲取后續參數 - 默認情況下, 如果參數不足, echo 不會報錯, 其他命令, 需要驗證
- 可以嘗試
-
2. 獲取多個參數
-
問題1: 獲取多個參數
- 一個一個獲取參數, 如果參數多了, 會不會很麻煩
-
解決
- 可以一次獲得 所有參數
-
方案1:
$*
-
$*
- 一次獲取所有參數
-
代碼
#!/bin/bash var1=$* echo ${var1}
-
-
問題2: 分開取參數
-
所有參數
$*
獲取到的參數, 是所有參數排在一起的
-
需要
- 我想單獨獲得 某個參數
-
解決
- 思路1: 你知道要找 第幾個 參數
- 使用 ${num}
- 思路2: 什么? 你不知道是第幾個, 但是你就知道要 什么樣的參數
- 轉化為 數組
- 暫時不推薦
- 轉化數組, 我還不會
- 轉化后的數組, 不知道 元素下標的話, 需要循環, 數組的操作, 我還是不會
- 暫時不推薦
- 轉化為 數組
- 思路3: 使用
$@
- 思路1: 你知道要找 第幾個 參數
-
-
方案2:
$@
-
所有參數
- 多在 循環時 使用
-
代碼
#!/bin/bash for word in "$@" do echo ${word} done
-
3. 獲取最后一個參數
-
問題: 最后一個參數
- 最后一個
- 我就想獲得 最后一個參數
- 最后一個
-
解決
#!/bin/bash # 假設參數是 1 2 3 # 最后一個參數, ${3} var1=${#} echo $var1 echo ${!var1} # 倒數 第二個參數, ${2} var2=$[${#}-1] echo $var2 echo ${!var2}
-
問題: 手滑沒加參數
-
問題
- 忽然手滑, 沒有加參數
-
結果
- 第一段直接打印出了 腳本名
-
4. 獲取腳本名
-
腳本名
- ${0}
- 打印 ${0} 即可看到
- ${0}
-
問題
-
./<script>
- 顯示
./<script>
- 顯示
-
bash <script>
- 顯示
<script>
- 顯示
-
source <script>
- 顯示 -bash
- ????
- 顯示 -bash
-
ps
-
ref
- 學習 bash
- Shell 傳遞參數
- Linux獲取最后一個參數(參數統計)
-
疑問
- 獲取腳本名稱如果這么不穩定, 那是否有 穩定的方法 呢?
-
后續嘗試下 獲取 選項