我最近一直在使用 getopts,并且已经设置好所有内容。我有一个问题。我希望它能工作,这样如果有人没有在命令行上输入参数,他们就会得到帮助文本,例如:
$ ./script
$ help: xyz - argument must be used.
这是我目前拥有的。
#!/bin/bash
function helptext {
# ...
}
function mitlicense {
# ...
}
while getopts "hl" opt; do
case $opt in
h) helptext >&2
exit 1
;;
l) mitlicense >&2
exit 0
;;
\?) echo "Invalid option: -$OPTARG" >&2
exit 1
;;
:) echo "Option -$OPTARG requires an argument." >&2
exit 1
;;
*) helptext >&2
exit 1
;;
esac
done
最佳答案
使用 if 测试验证用户输入,如下所示。
test
的 -z
选项在 -z 后面的字符串长度为零时返回 true。
if [ -z "$1" ]
then
helptext
exit 1
fi
关于linux - 如果没有传递参数,如何显示帮助文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16120622/