我写了下面的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:'。 –