![XPOST 명령을 컬하기 위해 변수를 내부 따옴표로 전달하는 Bash 스크립트](https://linux55.com/image/217049/XPOST%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%BB%AC%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EB%82%B4%EB%B6%80%20%EB%94%B0%EC%98%B4%ED%91%9C%EB%A1%9C%20%EC%A0%84%EB%8B%AC%ED%95%98%EB%8A%94%20Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8.png)
컬 명령을 호출하는 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
바이너리 키 예/아니요로 사용되지 않습니다.