Shell 引數的讀取和處理
Shell指令碼經常需要傳入一些引數。下面的指令碼可以作為一個通用模組,在寫shell時用來
1. 指定引數的型別
2.
允許使用者靈活指定引數順序,或者省掉某幾個引數
3. 透過shift命令,將引數傳給指定的變數
注意
1. getopt a:b:c $*
$*和c之間有空格(必須)
2. basename用處
3.
shift用法
$ cat getopt1
#!/bin/sh
set -- `getopt a:b:c: $*`
getopt_rc=$?
if [ "$getopt_rc" -ne "0" ]; then
pgm=`basename $0`
echo
"$pgm $getopt_rc Process failed during getopt attempt - illegal
parameters"
exit 10
fi
while [ $# -gt 0 ]; do
case $1
in
-a)
shift
p1=$1
echo "-a is
$p1"
shift
;;
-b)
shift
p2=$1
echo "-b is
$p2"
shift
;;
-c)
shift
p3=$1
echo "-c is
$p3"
shift
;;
--)
shift
echo "case --"
#一般shell中直接break結束迴圈,沒有該echo
break
esac
done
執行結果如下:
$ ./getopt1 -a AA -b BB -c CC
-a is AA
-b is BB
-c is
CC
-- case
$ ./getopt1 -b BB
-b is BB
-- case
$
./getopt1 -b BB -d DD
getopt: invalid option -- d
-b is BB
--
case
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/207/viewspace-905998/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- bash shell 讀取引數檔案常見方法
- Python指令碼的常見引數獲取和處理方式Python指令碼
- MyBatis 引數處理MyBatis
- JavaScript 中的引數處理JavaScript
- shell 怎麼獲取引數的長度
- 訊號處理基本引數
- Mybatis引數處理總結MyBatis
- shell中如何處理兩個數的減法
- shell的引數和指令碼流程改進指令碼
- sqlserver 針對預處理sql傳入引數的處理方式SQLServer
- Shell解析引數
- 處理sqlcommand裡面的引數SQL
- shell中字串的處理字串
- shell 字元處理字元
- 麒麟659和麒麟710處理器引數比較
- TCL指令碼讀取命令列引數指令碼命令列
- 採用RFC讀取表後的後處理
- java讀取大檔案並處理Java
- axios 後端拿不到引數的處理iOS後端
- 小程式的事件處理引數不能取得事件
- 函式訪問引數受限的處理方法函式
- SQL Server之旅(12):sqltext的引數化處理SQLServer
- 利用Java處理Jmeter介面常用引數JavaJMeter
- 華為麒麟659和麒麟710處理器引數比較
- js如何獲取url所傳遞的引數和引數值JS
- Shell自學二(引數傳遞和陣列)陣列
- 讀取檔案迴圈處理的兩種方法
- Rust 程式設計,讀取命令列引數Rust程式設計命令列
- 網址url相關引數獲取處理外掛簡單介紹
- Python xlrd讀取excel異常處理PythonExcel
- 處理pandas讀取資料為nan時NaN
- java中大數處理和高精度小數處理(so easy)Java
- 12.MyBatis學習--對映檔案_引數處理_單個引數&多個引數&命名引數MyBatis
- C#中Main函式後引數的處理C#AI函式
- shell 擷取變數的字串變數字串
- JavaScript 事件處理函式傳遞引數JavaScript事件函式
- onclick事件處理函式傳遞引數事件函式
- 大批次引數輸入查詢處理