Verwendung von Variablen in jq/curl Bash-Befehlen

  • Distribution
    SLES 15

    Liebes Forum,


    ich vermute es handelt sich um eine blutige Anfängerfrage, ich scheitere gerade an einer Variableneinbindung in einem Bashbefehl.

    Code
    filepath=$(curl -s $listURL | jq '.[0].products[] | select (.name=="Produkt") | .versions | sort_by(.date) | last | .files[] | select(.url | contains("Docker")) | .url ')

    Nun möchte ich gerne, dass Produkt durch eine Variable ersetzt wird. Ich habe hier schon einiges ausprobiert z.B.:


    Code
    filepath=$(curl -s $listURL | jq '.[0].products[] | select (.name=="$ProductName") | .versions | sort_by(.date) | last | .files[] | select(.url | contains("Docker")) | .url ')

    Jedoch scheitere ich leider. Über Hilfe bin ich euch sehr dankbar.


    beste Grüße

    Tim

  • filepath=$(curl -s $listURL | jq '.[0].products[] | select (.name=="$ProductName") | .versions | sort_by(.date) | last | .files[] | select(.url | contains("Docker")) | .url ')

    Ich würde als erstes mal die die "" bei $ProductName weglassen. Das wird sonst als String definiert.

    Mainboard: MSI Z170-A Pro

    Prozessor: Intel i7 6700K

    Grafikkarte: AMD RX 7800 XT

    OS: EndeavourOS

  • Besten Dank, ich habe jetzt tatsächlich den entsprechenden Hebel gefunden:

    Code
    filepath=$(curl -s $listURL | jq --arg product "$ProductName" '.[0].products[] | select (.name==$product) | .versions | sort_by(.date) | last | .files[] | select(.url | contains("Docker")) | .url ')

    besten Dank!!!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!