shell中getopts的用法

2021-10-23 20:38:13 字數 1232 閱讀 3883

命令格式

getopts string_args var_name

兩個引數:

如果不是很理解,先記住其命令格式和它的兩個引數代表的意義,看下面的操作。

file_name: test

#!/bin/bash

while

getopts

"a:" opt;

docase$in

a)echo

"this is a vaule $";;

?)echo

"this is bad 'optarg' value when 'a' has no value => $";;

esac

done

execute the commands

[bsj]

# ./test -a

./test: option requires an argument -- a # 報錯,提示a需要value

[bsj]

# ./test -a hello

this is a vaule hello

結果

這個時候,當a的值缺失的時候,你不想看到報錯,而想讓它執行了?)選項的命令。

這個時候string_args需要這樣寫:a:(在a前面個加:)

execute commands again

[bsj]

# ./test -a

this is bad 'optarg' value when 'a' has no value =

> a # 執行了 ?)選項的命令

[bsj]

# ./test -a hello

this is a vaule hello

總結

據網上眾多博文中所訴,都提到了invalid optionmiss argument option兩種報錯,字面意思上,就是無效引數和引數缺失。本博文演示的時引數缺失的情況,當引數缺失時,如果想要處理這種情況,則使用:a:冒號字首的這種情況,並設定?)選項來處理引數缺失時需要執行的命令。(其實和捕獲異常的概念有類似之處)

shell中處理引數getopts命令

一 getopts 簡介 由於shell命令列的靈活性,自己編寫 判斷時,複雜度會比較高。使用內部命令 getopts 可以很方便地處理命令列引數。一般格式為 getopts optstring name args getopts 的設計目標是在迴圈中執行,每次執行迴圈,getopts 就檢查下乙個...

shell條件getopts使用

一 簡介 在linux命令中,我們通常會見到linux命令後,加引數 a或 ab等寫法,也就是指定命令的行為及傳遞引數。這就借助了getopts來獲取命令引數。二 使用 例如,編寫如下指令碼getopts study.sh usr bin env bash 讀取引數到opt中 whilegetopt...

shell 命令getopts用法

寫shell指令碼常見sh test.sh m 2 d 3的寫法 事例指令碼 bin bash while getopts a b c arg 選項後面的冒號表示該選項需要引數 do echo arg arg case arg in a echo a s arg optarg optind 引數存在...