SHELL指令碼學習總結(第二話)getopts命令

2021-10-09 13:15:23 字數 1843 閱讀 1945

@@@    getopts命令

getopts命令內置於bash shell。

getopts命令的格式如右:getopts optstring variable

optstring定義的內容與getopt命令完全相同。

但是其輸出內容與getopt命令完全不同。

例子如下:

$ getopt ab:cd -a -b test1 -cd test2 test3    ###getopt輸出例

-a -b test1 -c -d -- test2 test3

$ getopts ab:cd -a -b test1 -cd test2 test3 ###getopts輸出例1

-bash: getopts: `-a': not a valid identifier

$ getopts ab:cd -a

-bash: getopts: `-a': not a valid identifier ###getopts輸出例2

$ getopts ab:cd a ###getopts輸出例3

###回車後為不輸出任何內容

為什麼會由以上結果,我也不清楚。希望有懂的朋友可以助我解惑。

@@@    getopts在shell指令碼中的用法

以下是乙個簡單的例子:

$ cat getopts.sh

#!/bin/bash

# ****** demonstration of the getopts command

#echo

while getopts ab:c opt ###通過whlie迴圈將選項通過getopts格式化成opt變數

docase "$opt" in

a) echo "found the -a option" ;;

b) echo "found the -b option, with value $optarg";; ###$optarg變數指的是選項後的引數

c) echo "found the -c option" ;;

*) echo "unknown option: $opt";;

esac

done

$

輸出結果:

$ ./getopts.sh -ab test1 -c

found the -a option

found the -b option, with value test1

found the -c option

$ ./getopts.sh -b "test1 test2" -a ###可以完美識別''雙引號

found the -b option, with value test1 test2

found the -a option

$$ ./getopts.sh -d #輸入未定義的選項後顯示的錯誤資訊

cat: invalid option -- 'd'

try 'cat --help' for more information.

$ ./getopts.sh -d #在ab:c之前加上:變成:ab:c以後getopts能

unknown option: ? #將所有未定義的選項統一輸出成問號

以上,是我今天的學習總結。

物件導向設計第二話

二 軟體開發過程 uml unified modeling language,統一的建模語言 在乙個ooad軟體開發過程,我們要完成二個不同的工作 1 ooa 分析階段我們主要 要做什麼?what to do?分析階段考察如何解決現實問題 建立乙個清晰的商業問題的檢視 概述系統必須執行的任務 建立商...

白話C 之第二話

1.if語句的用法及格式 當我們需要簡單的分支或判斷的時候,需要用到if語句,格式如下 if 條件 else 例如 int i 100 if i 101 if如果的意思 else else就是指否則的意思 2.switch語句的用法及格式 當我們在需要複雜的分支條件時,需要用到switch語句,但是...

白話C 之第二話

1.if語句的用法及格式 當我們需要簡單的分支或判斷的時候,需要用到if語句,格式如下 if 條件 else 例如 int i 100 if i 101 if如果的意思 else else就是指否則的意思 2.switch語句的用法及格式 當我們在需要複雜的分支條件時,需要用到switch語句,但是...