У меня есть скрипт bash, где мне нужно отправлять запросы на остальные серверы API, используя curl.

Я пытаюсь сделать это:

$(curl -m100000000000000000000000000000000 -X POST -H "Content-Type: application/json" -d'{"queryType":"SQL", "query": "create table hdfs.bigdata.`databases/'$cleantn'/'$timestamp'` AS (SELECT * FROM dfs.`'$tempfile'`)"}' http://localhost:8047/query.json)

Я не могу заставить его работать. * Оценивается от bash

положить его в переменную все еще не работает

query='{"queryType":"SQL", "query": "create table hdfs.bigdata.`databases/'$cleantn'/'$timestamp'` AS (SELECT * FROM dfs.`'$tempfile'`)"}'
$(curl -m100000000000000000000000000000000 -X POST -H "Content-Type: application/json" -d''$query'' http://localhost:8047/query.json)
#or
$(curl -m100000000000000000000000000000000 -X POST -H "Content-Type: application/json" -d"$query" http://localhost:8047/query.json)

1 ответ1

0
query='{"queryType":"SQL", "query": "create table hdfs.bigdata.`databases/'$cleantn'/'$timestamp'` AS (SELECT * FROM dfs.`'$tempfile'`)"}'

Поменяйте местами кавычки. bash ничего не будет обрабатывать в речевых кавычках "" или с предваряющим экранированием \

Выше становится:

query="{'queryType':'SQL', 'query': 'create table hdfs.bigdata.`databases/'$cleantn'/'$timestamp'` AS (SELECT * FROM dfs.`'$tempfile'`)'}"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .