unix and linux
[bash] single quote(')에서 변수 사용하기
'김용환'
2016. 3. 23. 15:50
single quote에서 변수를 써야 하는 상황이 생길 수 있다.
예를 들어 curl을 이용해서 HTTP POST body를 사용해야 하는 상황입니다. (elasticsearch에 alias 추가 작업)
curl -s -XPOST http://${host}:9200/_aliases -d '{ "actions" : [ { "add" : { "index" : "${NEW_INDEX}", "alias" : "${ALIAS}" } }]}'
그냥 실행하면, "${NEW_INDEX}"와 ${ALIAS}를 읽지 못해서 에러가 발생한다.
그럴 때는 single quote와 double quote를 변수 앞에, dobule quote와 single quote를 변수 뒤에 붙여 쓴다.
echo 'aaaaa $NEW_INDEX bbbbbb'
echo 'aaaaa '"$NEW_INDEX"' bbbbbb'
결과
aaaaa $NEW_INDEX bbbbbb
aaaaa sns_profile bbbbbb
맨 처음 es 요청하는 것은 다음과 같이 사용하면 잘 동작한다.
curl -s -XPOST http://${host}:9200/_aliases -d '{ "actions" : [ { "add" : { "index" : '"\"${NEW_INDEX}\""', "alias" : '"\"${ALIAS}\""' } }]}'