在编写shell脚本时,我经常发现自己大部分时间(特别是在调试时)都在处理参数处理。我编写或维护的许多脚本都很容易完成80%以上的输入、解析和清理。--port 80,但是start_server.sh --port 80 --server myserver在You must specify a server to start.中失败了--它使解析代码变得更简单因此,shell脚本仍然进行一些解析和清理,但是用户可以输入比shell脚本本机接受的更多的
为了方便地对脚本的命令行开关进行bash完成,我一直在研究/etc/ bash _ _parse_help中的bash函数(debian sid,bashv4.2-1,bash完成v1:1.99-3)。我的脚本生成一条我认为是标准GNU格式的帮助消息: -h, --help Show this help message
-o, --option
Usage: foo --help | --version
-h, --helpprint this help message.根据the official parser的说法,foo a -o b或foo --target abc a -o b都无法正确解析。造成这种情况的可能原因是什么?任何帮助都将不胜感激。