所以我一直在閱讀有關getopts,getopt等的知識,但是我沒有找到解決我的問題的確切解決方案。在bash腳本中解析參數的最佳方法
我如何使用腳本的基本思路是:
./program [-u] [-s] [-d] <TEXT>
除了文本,如果-d傳遞不是必需的。請注意,TEXT通常是一段文字。
我的主要問題是,一旦getopts完成解析標誌,我無法知道TEXT參數的位置。我姑且認爲文字是最後一個參數,但是,如果用戶食堂和不一樣的東西:
./program -u "sentence 1" "sentence 2"
程序將沒有意識到,使用不正確。
我來最接近的是通過做
ARGS=$(getopt usd: $*)
IFS=' ' read -a array <<< "$ARGS"
唯一的問題使用的getopt和IFS是,文本可能是文本的長款和這種方法由於分割空間的文本的每一個字。
我想我最好的選擇是使用正則表達式,以確保正確地形成使用情況,然後提取與getopts的參數,但如果有一個簡單的解決方案
命令行參數通常是短字符串。考慮從標準輸入中讀取來代替''。 –
chepner
您引用的示例中的用法不正確?什麼是正確的輸入? – rici
[在bash shell腳本中使用getopts來獲取長和短命令行選項](http://stackoverflow.com/questions/402377/using-getopts-in-bash-shell-script-to-get-long - 和 - 短命令行選項) –