2017-07-21 57 views
0

我正在使用getopts將參數傳遞給shell腳本。帶相同起始字母的getopts選項

例如,我想對腳本中的兩個部分進行操作,它們都以相同的字母開頭。我也不想選擇任何其他的信。例如,我有兩個項目:項目1和項目2,它們都以字母p開頭。

有沒有什麼辦法,我可以提供完整的字符串,如--project1等。或者有沒有其他解決方案?

while getopts "project1 project2" opt; 
# This ofcourse would not work. So, whats the solution? 

是否有替代getopts

+0

的可能的複製[在bash shell腳本使用getopts的獲得長期和短期的命令行選項]腳本(https://stackoverflow.com/questions/402377/using- getopts-in-bash-shell-script-to-get-long-and-short-command-line-options) – yinnonsanders

回答

0

您可以使用options參數。它應該是這個樣子

while getopts p: flag 
do 
    case $flag in 
     p) OARG=$OPTARG;; 
    esac 
done 

echo $OARG 

getopts專賣店在OPTARG傳遞的選項。

你會調用使用

./script.sh -p "project1" 
+0

project1和project2並不相互排斥。有時,可能需要同時運行它們。也許我的例子project1和project2是不正確的。 – infoclogged

+0

在這種情況下,你可能想使用'getopt'(no s) – yinnonsanders