带有参数值和可选标志的Bash脚本



我正在编写一个bash脚本,它依赖于通过参数提供的许多值,并提供可选(布尔)标志。

根据本页的示例,我使用-h选项扩展了脚本,将其扩展为以下内容:

human=false
while getopts u:a:f:h: flag
do
case "${flag}" in
u) username=${OPTARG};;
a) age=${OPTARG};;
f) fullname=${OPTARG};;
h) human=true;;
esac
done
if $human; then
echo "Hello human"
else
echo "You're not human"
fi
echo "Username: $username";
echo "Age: $age";
echo "Full Name: $fullname";
这里的问题是,-h参数需要一个值,而它应该作为一个标志来处理:
bash test.sh -u asdf -h
test.sh: option requires an argument -- h
You're not human
Username: asdf
Age: 
Full Name: 

如何在bash脚本中使用带有值和标志的参数?

应将getopts u:a:f:h:替换为getopts u:a:f:h

删除:,告诉getoptsh没有附加参数

相关内容

  • 没有找到相关文章

最新更新