XPOST 명령을 컬하기 위해 변수를 내부 따옴표로 전달하는 Bash 스크립트

XPOST 명령을 컬하기 위해 변수를 내부 따옴표로 전달하는 Bash 스크립트

컬 명령을 호출하는 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바이너리 키 예/아니요로 사용되지 않습니다.

관련 정보