命令格式
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 option
和miss 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 引數存在...