为什么这个简单的bash脚本不起作用? getopts的

时间:2016-01-02 10:32:07

标签: bash exit getopts

我不明白为什么这样做不会起作用,因为它非常简单。

#!/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

有人可以弄清楚出了什么问题吗?它可能是愚蠢的,但我不能按照我想要的方式工作。

1 个答案:

答案 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