腳本中如何加入選項
阿新 • • 發佈:2018-02-13
case term 什麽 false list text 腳本選項 not 簡單 腳本選項--我們在執行命令時,後邊可以跟許多的選項和參數,那麽在創建腳本的時候是否也可以在腳本後邊跟上不同的選項而執行不同的功能?
,所以執行的效果如下:
目錄
處理簡單的選項
從參數中分離選項
處理帶值的選項
一、處理簡單選項
先看下面的一個腳本:
#!/bin/bash while [ -n "$1" ] do case "$1" in -a) echo -a option ;; -b) echo -b option ;; -c) echo -c option ;; *) echo nothing ;; esac shift done
由於shift移位命令,無論腳本後邊跟多少個選項,都將第一個參數的形式傳給腳本
二、從參數中分離選項
執行腳本的時候,有時候既需要選項,也需要參數,這就要把選項和參數區分開。
#!/bin/bash while [ -n "$1" ] do case "$1" in -a) echo -a option;; -b) echo -b option;; --) shift break;; *) echo nothing;; esac shift done for param in "$@" do echo this param is "$param" done
這個腳本中 -- 作為選項和參數的分割,為了避免shell把 -- 也當做參數來處理,需要在break前加shift把最後一個選項的值丟棄。執行效果如下:
三、處理帶值的選項
有些時候選項也是需要帶參數的,這需要讓腳本知道什麽選項後邊應該跟參數
#!/bin/bash while [ -n "$1" ] do case "$1" in -a) echo a option;; -b) param="$2" echo b option with $param shift;; --) shift break;; *) echo nothing;; esac shift done for param in "$@" do echo this is $param done
-b選項後邊需要跟參數賦值給$2,然後需要shift丟棄一個參數,執行效果如下:
腳本中如何加入選項