我寫了下面的shell腳本來解析參數和打印。它不按預期工作。我相信我沒有將正確的論點傳遞給評估可選參數的函數。可有一個人請幫忙批改它讓getopts在bash腳本中的獨立函數中
#! /bin/sh
MAX_NO_OF_DATABASE=500;
MAX_NO_OF_CONCURRENT_REQUEST=500;
MAX_NO_OF_REQUEST=500;
function showUsage(){
echo "Sample Usage : ./benchmarking.sh <CORE_URL> <SYNC_SERVER_URL> [-d MAX_NO_OF_DATABASE] [-c MAX_NO_OF_CONCURRENT_REQUEST] [-n MAX_NO_OF_REQUEST]";
exit;
}
function readArguements(){
# Check for core url
if [ -z $1 ]; then
echo "CORE_URL is not specified"
showUsage
fi
# Check for sync server url
if [ -z $2 ]; then
echo "SYNC_SERVER_URL is not specified"
showUsage
fi
}
function readOptionalArguements(){
# Check for the optional parameters
while getopts dcn: opt
do
case $opt in
d) MAX_NO_OF_DATABASE="$OPTARG";;
c) MAX_NO_OF_CONCURRENT_REQUEST="$OPTARG";;
n) MAX_NO_OF_REQUEST="$OPTARG";;
esac
done
}
readArguements $*
readOptionalArguements $*
echo "$1 $2 $MAX_NO_OF_DATABASE $MAX_NO_OF_CONCURRENT_REQUEST $MAX_NO_OF_REQUEST"
當我運行它./benchmarker.sh core_url sync_url -d 500 -c 100 -n 200
它打印爲 core_url sync_url 500 500 500
我已經調試上,我可以看到,它不評估開關塊。我是否傳遞正確的參數readOptionalArguements
是不是'getopts的d:C:N:opt'? – PeterMmm
@PeterMmm:沒有用 –
彼得是對的,不過。它應該是'getopts d:c:n:'。 –