2
A
回答
7
这里有一个简单的不安全技术:
#!/bin/bash
clean() {
echo rm -fR .
echo Thanks to koola, I let you off this time,
echo but you really shouldn\'t run random code you download from the net.
}
help() {
echo Whatever you do, don\'t use clean
}
args() {
printf "%s" options:
while getopts a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z: OPTION "[email protected]"; do
printf " -%s '%s'" $OPTION $OPTARG
done
shift $((OPTIND - 1))
printf "arg: '%s'" "[email protected]"
echo
}
"[email protected]"
这一切都非常酷,但它不限制子命令可能是什么。所以你可能想要用最后一行代替:
if [[ $1 =~ ^(clean|help|args)$ ]]; then
"[email protected]"
else
echo "Invalid subcommand $1" >&2
exit 1
fi
有些系统让你在子命令前加上“全局”选项。如果需要,可以在子命令执行之前放置一个getopts
循环。在落入子命令执行之前,请记住shift
;同样,将OPTIND
重置为1,以便子命令getopts不会感到困惑。
相关问题
- 1. 缺少离子bash命令
- 2. bash与带命令行参数的scala.sys.process.Process
- 3. 带管道的Bash fg命令
- 4. Bash - 带变量和命令的变量
- 5. && vs&带有bash中的测试命令
- 6. 带变量的Bash命令替换
- 7. 带命令值的Bash设置变量
- 8. bash的alias命令
- 9. Bash expr命令
- 10. unix bash命令
- 11. &bash命令后
- 12. bash -x命令
- 13. Bash命令发送电子邮件
- 14. 带声卡/ Livecard的子菜单命令
- 15. 带子命令的多标量扩展
- 16. 了解带标志的子命令
- 17. Python:argparse子命令子命令?
- 18. bash命令参数
- 19. Bash绑定命令
- 20. \!在Bash命令中
- 21. 运行bash命令
- 22. 编辑bash命令?
- 23. bash命令文件
- 24. bash for inline命令
- 25. bash命令错误
- 26. Linux Bash sed命令
- 27. bash命令扩展
- 28. Bash Centos7“which”命令
- 29. Linux Bash goto命令?
- 30. $“\ r” - 命令在bash
不知道你在得到什么。你可以添加一个程序调用“svn”,然后解析所有的svn命令。以一种所有bash的方式调用子命令。 – kdubs
argparse对支持命令行界面的程序进行标记分析,例如'git clean -df'将被解析为'clean'子命令,'-df'是'clean'特定的标志。 – LavaScornedOven
这是可能的,但你必须实现你自己的参数解析器来处理子命令。 – koola