XPOST コマンドをカールするために変数を内部引用符で渡す Bash スクリプト

XPOST コマンドをカールするために変数を内部引用符で渡す Bash スクリプト

curlコマンドを呼び出すbashスクリプトを作成しています。

#!/bin/bash

while n flag
do
    case "${flag}" in
        n) name=${OPTARG};;
    esac
done
curl -XPOST http://localhost:2468/api/webhook -H 'Content-Type: application/json' --data '{"name":"'"$name"'"}'

しかし、これは変数を解析し、空の文字列を送信するものではありません。以下を試しても同じ結果が得られます。

#!/bin/bash

while u:p:n flag
do
    case "${flag}" in
        u) unrar=${OPTARG};;
        p) path=${OPTARG};;
        n) name=${OPTARG};;
    esac
done

curl -XPOST http://localhost:2468/api/webhook -H 'Content-Type: application/json' --data "{/"name/":/"$name/"}"

答え1

getoptsスクリプトパラメータを読み取ることを忘れました。

while getopts "u:p:n:" flag
do
    case "${flag}" in
        u) unrar=${OPTARG};;
        p) path=${OPTARG};;
        n) name=${OPTARG};;
    esac
done

また、パラメータが必要な場合は「n」の後にコロンを付けることを忘れないでください。コロンは-nバイナリキーはい/いいえとして使用されません。

関連情報