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
バイナリキーはい/いいえとして使用されません。