我正在尝试创建一个脚本,该脚本具有一个选项,该选项将包含用引号括起来的任意文本(包括空格),这证明很难搜索和实现。
基本上我想要的行为是docker_build_image.sh -i "image" -v 2.0 --options "--build-arg ARG=value",这将是一个帮助脚本,用于使用我们的构建服务器简化 docker 图像的版本控制。
我最接近成功获取--options值的方法给了我 getopt 的错误,“无法识别的选项 '--build-arg ARG=value'。
完整脚本如下
#!/usr/bin/env bash
set -o errexit -o noclobber -o nounset -o pipefail
params="$(getopt -o hi:v: -l help,image:,options,output,version: --name "$0" -- "$@")"
eval set -- "$params"
show_help() {
cat << EOF
Usage: ${0##*/} [-i IMAGE] [-v VERSION] [OPTIONS...]
Builds the docker image with the Dockerfile located in the current directory.
-i, --image Required. Set the name of the image.
--options Set …Run Code Online (Sandbox Code Playgroud)