【发布时间】:2022-08-18 13:05:51
【问题描述】:
我在 bash 中有一个脚本,如下所示:
#!/usr/bin/env bash
set -e
if [[ \"$#\" == 0 ]]; then
printhelp
exit 1
fi
# process options
while [[ \"$1\" != \"\" ]]; do
case \"$1\" in
-n | --name)
shift
_NAME=\"$1\"
;;
-i | --id)
shift
_ID=\"$1\"
;;
-h | --help)
printhelp
exit 1
;;
*)
printhelp
exit 1
;;
esac
shift
done
这工作正常,但我想添加一些将采用上述参数的“操作”。例如。用法将是:
./run.sh create --name foo --id 1234
./run.sh delete --id 1234
我无法找出正确的语法,也无法将此要求表达为能够进行搜索的适当单词。
-
列出所有可能的参数格式。然后编写代码来理解这一点。前任。如果您总是有一个动作参数(在您的示例中创建或删除),将该动作存储在一个变量中,调用
shift,其余参数可以使用您现有的代码进行处理。您也可以查看getopts:)