मेरे पास एक फ़ाइल में नीचे की तरह एक bash स्क्रिप्ट है nepleaks_upd.sh
, जिसे मैं चलाना चाहता हूं ./nepleaks_upd.sh bootstrap --branch off
। इसे लेने के लिए नहीं बना सकता है --branch
, लेकिन इसके साथ क्या काम करता है ./nepleaks_upd.sh bootstrap -b off
।
usage() { echo "Usage: $0 [prepare | up | down] [-b <on/off>]" 1>&2; exit 1; }
case "$1" in
bootstrap)
while getopts ":b:" o; do
case "${o}" in
b)
b=${OPTARG}
if [ ${b} == "off" ]; then
echo "git clone https://github.com/iPrayag/dotfiles.git"
## logic
fi
;;
*)
echo ${o}
usage
;;
esac
done
shift $((OPTIND-1))
echo "option1 = ${o}"
echo "option2 = ${b}"
if [ -z "${b}" ]; then
usage
fi
;;
up)
echo "up"
##logic
;;
down)
echo "down"
##logic
;;
*)
echo "Usage: $0 {up | down} dev"
exit 1
;;
esac
पहले बिना case .. in .... esac
, यह ठीक काम करता है। इसके साथ case ... in ... esac
, यह रिक्त विकल्प देता है -b
,
$ ./nepleaks_upd.sh bootstrap -b off
option1 = ?
option2 =
Usage: ./nepleaks_upd.sh [bootstrap | up | down] [-b <on/off>]
case .. in .... esac
, यह ठीक काम करता है" से आपका क्या मतलब है ? क्या आपका मतलब है कि 5-25 पार्स लाइनों को ./nepleaks_upd.sh -b off
सही ढंग से? हो सकता है कि आपको इसकी आवश्यकता हो shift
, इसलिए getopts
" bootstrap
" पर झूमना न पड़े ।
$1
?