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