为什么这个简单的 bash 脚本不起作用?获取选项
Why is this simple bash script not working? 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
有人能找出问题所在吗?这可能有些愚蠢,但我无法按照我想要的方式工作。
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
我不明白为什么这行不通,因为它真的很简单。
#!/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
有人能找出问题所在吗?这可能有些愚蠢,但我无法按照我想要的方式工作。
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