我不明白为什么这样做不会起作用,因为它非常简单。
#!/bin/bash
type='A'
while getopts "t:" OPTION
do
case $OPTION in
t)
echo "The value of -t is $OPTARG"
type=$OPTARG
exit
;;
\?)
echo "Used for the help menu"
exit
;;
esac
done
echo $type
输出我得到:
root@w:/etc/scripts# ./dns_add_record -t test
The value of -t is test
root@w:/etc/scripts# ./dns_add_record
A
预期产出:
root@w:/etc/scripts# ./dns_add_record -t test
The value of -t is test
test
有人可以弄清楚出了什么问题吗?它可能是愚蠢的,但我不能按照我想要的方式工作。
答案 0 :(得分:2)
exit
退出shell脚本。
从-t
案例中删除它,它只对帮助有意义。
在脚本中添加set -x
会产生以下跟踪:
+ type=A
+ getopts t: OPTION
+ case $OPTION in
+ echo 'The value of -t is 3'
The value of -t is 3
+ type=3
+ exit