最近我试图在这样的 shell 脚本中传递参数:
$./myscript.sh <sourcefile> <destinationfile> -o
脚本应该读入一个源文件和一个目标文件 - 两者都应该是强制性的 - 然后最后检查其他可选参数。但是,当尝试-o
使用getopts
- 解析选项时,它永远不会找到它。它总是“假”或“0”。-o
它仅在选项在其他参数之前传递时才识别!
$./myscript.sh -o <sourcefile> <destinationfile>
这是强制性的,它只能以这种方式工作吗?当我在脚本中搜索规则、约定或实践时,我从来没有找到这些基本信息,只是通过反复试验才发现它,浪费了大量时间……我还想知道复制命令过程是如何工作的,因为它也将可选参数与非可选参数混合