Skip to content

Argument values starting with dash '-' throw "argument --arg: expected 2 arguments" #186

Open
@SaberStrat

Description

@SaberStrat

Problem

Trying to pass an argument to the query via --arg with a value starting with a dash, even when passed in quotes, yq throws an error.

# yq -n --arg name "foo" --arg value "-bar" '{"name":$value}'
usage: yq [-h] [--yaml-output] [--yaml-roundtrip] [--yaml-output-grammar-version {1.1,1.2}] [--width WIDTH] [--indentless-lists]
          [--explicit-start] [--explicit-end] [--in-place] [--version]
          [jq_filter] [files ...]
yq: error: argument --arg: expected 2 arguments

It looks as if the --arg value is interpreted as another argument here.

In comparison,jq does not throw an error and even allows passing a dash-prefixed --arg value without quotation marks.

Versions

Plattform

Alpine Linux 3.17.0

yq version

3.2.3

Python version

3.9.16

pip version

23.3.2

jq version

1.6-r2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions