所以我希望能够使用a-h选项来显示帮助详细信息。我有:
while getopts ":h:d:n" opt; do
case $opt in
h) help="true" >&2
;;
d) vdir="$OPTARG"
;;
n) vname="$OPTARG"
;;
\?) echo "Error: Invalid option -$OPTARG" >&2
echo "Please use -h for more information"
exit 1
;;
esac
done
if [ "$help" = "true" ]; then
echo "Help details"
fi
当我传递-d或-n的详细信息(例如program-d/var/test/)时,它会很好地接收它们。然而,当我做一些类似程序h的事情时,它就不起作用了。
我也试过在case语句中使用h)选项时回显一行,但是没有得到回显。似乎当我做-h它不工作时,我也必须发送一个值(例如program-h“test”),它将做所需的事情。
如果我执行类似于program-p的操作,它将按要求显示错误消息,-h只是不执行任何操作。