小编Gre*_*g B的帖子

如何使用任意字符串解析命令行参数

我正在尝试创建一个脚本,该脚本具有一个选项,该选项将包含用引号括起来的任意文本(包括空格),这证明很难搜索和实现。

基本上我想要的行为是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)

bash shell-script getopts

3
推荐指数
1
解决办法
6921
查看次数

标签 统计

bash ×1

getopts ×1

shell-script ×1